我正在阅读本书的第一章,并且在编写此示例代码时遇到了一个问题:
# 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必须是字符串或代码对象
我不知道为什么会出现这个错误,如果有人能向我解释那会非常有用!
答案 0 :(得分:0)
问题在于您使用的是Python 2,但代码希望您使用Python 3.在Python 3中,函数input
将返回一个字符串,而在Python 2中它将评估你输入的字符串并返回它评估的内容。
切换到Python 3或使用raw_input
代替input
。