2016-06-29 13 views
0

私は、Pythonの基礎を通過し、インタプリタで、いくつかの組み込み関数をテストしていました。私が見ていたドキュメンテーションは、Python 3について語っていました...私はPython 2.7.3を使用しています。インタプリタ:Pythonの組み込み関数が定義されていませんか?

>>> x = '32456' 
>>> x 
'32456' 
>>> isalpha(x) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name 'isalpha' is not defined 

は、私はいくつかの研究を行なったし、...私はまたしても、なぜ私は、エラーを見ていimport math

をやった後sin(3.3)を使用することはできませんisalpha()は、Python 3のみに制限されているように見えないのですか?これらの関数が動作するためにインポートする必要がある他のモジュールがありますか?あなたが思うよう

+2

'isalpha'は関数ではありません。これはメソッドです: 'x.isalpha()'。 – Bakuriu

答えて

2

isalpha()関数が、strタイプの方法ではありません。あなたがする必要がある場合は、未結合の方法として、それを抽出し、機能としてそれに名前を付けることができます。

>>> "hello".isalpha() 
True 
>>> "31337".isalpha() 
False 
>>> isalpha = str.isalpha 
>>> isalpha("hello") 
True 
>>> isalpha("31337") 
False 

機能インポートされたモジュールで、そのモジュールのメンバーです。メインの名前空間に関数を引くために、fromの文を使用します。

>>> import math 
>>> math.sin(3.3) 
-0.1577456941432482 
>>> from math import cos 
>>> cos(3.3) 
-0.9874797699088649 

を今、なぜPythonは、このように動作しますか? mathモジュールとloggingモジュールの両方がlog()と呼ばれる機能を持っていますが、彼らは非常に異なることを行います。すべてのインポートされたシンボルは、メインの名前空間への道をまっすぐに行きました場合from math import *は、プログラムは両方のモジュールのlog()機能を使用することはできないだろうというとき

>>> import math, logging 
>>> help(math.log) 

log(...) 
    log(x[, base]) 

    Return the logarithm of x to the given base. 
    If the base not specified, returns the natural logarithm (base e) of x. 

>>> help(logging.log) 

log(level, msg, *args, **kwargs) 
    Log 'msg % args' with the integer severity 'level' on the root logger. If 
    the logger has no handlers, call basicConfig() to add a console handler 
    with a pre-defined format. 

は、彼らはありません。

1

isalphaは、文字列の方法ではなく、組み込み関数です。

>>> '34r'.isalpha() 
False 
>>> '45'.isalpha() 
False 
>>> 'rt'.isalpha() 
True 

sinを使用するには、インポートする必要があります:from math import sinsin(3.3)については

+0

十分に公正な、「罪」が定義されていないと私に言う罪(3.3)についてはどうですか? –

+0

インポートする必要があります: 'from math import sin' –

0

あなたはimport mathに持っている、そしてmath.sin(3.3)を呼び出します。

関連する問題