我试图在Python中运行的代码有什么问题? (假装缩进不是问题):
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 * (1 - x)
print(x)
main()
正如你可以想象的那样,自从我进入教科书以来,这一直非常令人困惑。谢谢你的帮助!
答案 0 :(得分:1)
需要缩进功能块
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 * (1 - x)
print(x)
main()
另外,我只使用eval
代替float
:
def main():
print("This program illustrates a chaotic function")
x = float(input("Enter a number between 0 and 1: "))
for i in range(10):
x = 3.9 * x * (1 - x)
print(x)
main()
样品:
>>> def main():
... print("This program illustrates a chaotic function")
... x = float(input("Enter a number between 0 and 1: "))
... for i in range(10):
... x = 3.9 * x * (1 - x)
... print(x)
...
>>> main()
This program illustrates a chaotic function
Enter a number between 0 and 1: .2
0.624
0.9150336
0.303213732397
0.823973143043
0.565661470088
0.958185428249
0.156257842027
0.514181182445
0.974215686851
0.0979659811419
答案 1 :(得分:1)
你的代码正在做两件错事 1: 您不能在输入方法中使用eval,因为eval要求输入字符串作为输入,而输入则返回浮点值 如果您将float作为输入传递,则可以简单地运行程序。
x = input("Enter a number between 0 and 1: "))
您需要使用raw_input(raw_input将返回字符串数据)
x = eval(raw_input("Enter a number between 0 and 1: "))
2:使用for循环,您需要提供缩进。
答案 2 :(得分:1)
我认为您的问题是因为您在崇高的文本编辑器中运行
尝试从命令行运行
$ python yourscript.py
您将看到您的脚本正常运行。
你得到的 EOFError是由于内置input
函数要求输入时没有向你的程序发送任何输入的sublimtext引起的。