2016-09-08 4 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, input эквивалентно eval(raw_input(prompt)), но вы все равно можете заставить его работать:

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