web-dev-qa-db-ja.com

「from math import sqrt」は機能しますが、「import math」は機能しません。理由は何ですか?

私はプログラミングの新人で、Pythonを学ぶだけです。

コードの記述にKomodo Edit 9.0を使用しています。そのため、「from math import sqrt」と書けば、「sqrt」関数を問題なく使用できます。しかし、「import math」とだけ書いた場合、そのモジュールの「sqrt」関数は機能しません。この背後にある理由は何ですか?どういうわけか修正できますか?

5

次の2つのオプションがあります。

import math
math.sqrt()

mathモジュールを独自の名前空間にインポートします。つまり、関数名の前にはmathを付ける必要があります。競合を回避し、現在のネームスペースにすでにインポートされている関数を上書きしないため、これは良い方法です。

または:

from math import *
sqrt()

mathモジュールからすべてを現在の名前空間にインポートします。 これは問題になる可能性があります

8
fenceop

あなただけの場合import mathsqrt関数を呼び出すには、次のようにする必要があります。

In [1]: import math

In [2]: x = 2

In [3]: math.sqrt(x)
Out[3]: 1.4142135623730951

それの訳は from math import sqrtsqrt関数を提供しますが、import mathはモジュールのみを提供します。

3
metersk

import mathのみを使用する場合、sqrt関数は別の名前math.sqrtで提供されます。

2
randomusername

平方根が必要な場合は、数値を0.5で累乗することもできます。

144 ** 0.5

結果を与える:

12.0
0
Blake