将初学者Python 3摄氏度编写为华氏算法时出错

时间:2017-01-17 04:34:01

标签: python python-3.x

我正在阅读本书的第一章,并且在编写此示例代码时遇到了一个问题:

# File: chaos.py 
# A simple program illustrating chaotic behavior. 

def main(): 
    print("This program illustrates a chaotic function")
    x = eval(input("Enter a number between 0 and 1: ")) 
    for i in range(10):
    x = 3.9 * x * (i - x)
    print(x)

main()

当我在jGrasp中运行此代码时,它给了我这个错误:

  

TypeError:eval()arg 1必须是字符串或代码对象

我不知道为什么会出现这个错误,如果有人能向我解释那会非常有用!

1 个答案:

答案 0 :(得分:0)

问题在于您使用的是Python 2,但代码希望您使用Python 3.在Python 3中,函数input将返回一个字符串,而在Python 2中它将评估你输入的字符串并返回它评估的内容。

切换到Python 3或使用raw_input代替input