简单的Python函数问题

时间:2013-12-12 05:17:24

标签: python python-3.x sublimetext

我试图在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()

正如你可以想象的那样,自从我进入教科书以来,这一直非常令人困惑。谢谢你的帮助!

3 个答案:

答案 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引起的。