【问题标题】:Reading math function issue阅读数学函数问题
【发布时间】:2017-01-16 09:13:13
【问题描述】:

这是我的代码

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 

【问题讨论】:

  • 也许 sqrt(2) 被解释为需要 eval() 才能转换为浮动的字符串?或者你需要 math.sqrt(2)。最好测试一下 valor=float(sqrt(2))) 是否会出错。

标签: python math input nameerror


【解决方案1】:

doc 可以看出,input 等价于eval(raw_input(prompt)),但你仍然可以让它工作:

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

【讨论】:

    猜你喜欢
    • 2011-10-26
    • 1970-01-01
    • 2016-05-27
    • 2019-11-05
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 2012-06-24
    相关资源
    最近更新 更多