2016-09-08 51 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

也许开方(2)被解释为需要的eval一个字符串()在铸造浮动之前?或者你需要math.sqrt(2)。测试valor = float(sqrt(2)))是否给出错误可能会很好。 –

回答

0

你可以从doc看到,input相当于eval(raw_input(prompt)),但你仍然可以让它工作:

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