2016-09-08 17 views
0

はここに私のコード読む数学関数の問題

import math 

try: 

    valor = float(input("Give a real number ")) 
    print("Your value given is: ", value) 
except ValueError: 

    print("You gave a value not interpretable as a real onel!!") 

ですそして、私の入力がsqrt(2)たとき、私はこのエラーを得た、誰もがなぜ知っていますか?

%run "c:\users\aar15\appdata\local\temp\tmpvzauzz.py" 

Give a real number sqrt(2) 
--------------------------------------------------------------------------- 
NameError         Traceback (most recent call last) 

c:\users\aar15\appdata\local\temp\tmpvzauzz.py in <module>() 

     1 import math 
     2 try: 
----> 3  valor = float(input("Give a real number ")) 

     4  print("Your value given is: ", value) 
     5 except ValueError: 

C:\Users\aar15\AppData\Local\Enthought\Canopy\App\appdata\canopy-1.6.1.3253.win-x86_64\lib\site-packages\IPython\kernel\zmq\ipkernel.pyc in <lambda>(prompt) 

C:\Users\aar15\AppData\Local\Enthought\Canopy\App\appdata\canopy-1.6.1.3253.win-x86_64\lib\site-packages\IPython\kernel\zmq\ipkernel.pyc in <module>() 

NameError: name 'sqrt' is not defined 
+1

おそらくSQRT(2)(evalを必要とする文字列として解釈されます)フロートにキャストする前に?または、math.sqrt(2)が必要です。 valor = float(sqrt(2)))がエラーを返すかどうかをテストすると良いかもしれません。 –

答えて

0

あなたがdocからわかるように、inputeval(raw_input(prompt))と同等ですが、あなたはまだそれを動作させることができます。

>>> import math 
>>> input() 
math.sqrt(2) 
1.4142135623730951 
>>> from math import * 
>>> input() 
sqrt(2) 
1.4142135623730951