使用Python3代码在VIM上使用Gettin EOFError

时间:2017-01-10 23:33:33

标签: python macos eoferror

我是初学者并遇到以下问题:每当我在VIM上执行以下脚本(我使用Python 3.6)时:

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()

只有在最后回忆起EOFError时才会得到main()。我得到的是:

This program illustrates a chaotic function
Enter a number between 0 and 1: Traceback (most recent call last):
  File "<stdin>", line 7, in <module>
  File "<stdin>", line 3, in main
EOFError: EOF when reading a line

并且不明白为什么,特别是因为我几周前尝试过它并且它完美地工作,把我扔到shell来输入值。不知道两者之间发生了什么或问题可能是什么。

2 个答案:

答案 0 :(得分:0)

听起来像是在用Python 2执行脚本,其中input()已使用eval()。相反,要么使用Python 3执行脚本,要么使用Python 2 raw_input()函数。

此外,您不需要使用eval将用户输入的float字符串转换为实际的float;只需使用float()

x = float(raw_input("Enter a number between 0 and 1: "))

如果您使用的是Python 3,请将raw_input()替换为input()

答案 1 :(得分:0)

# For Python2
# Replace the line:
x=eval(input("Enter a number between 0 and 1: "))
# with:
x=input("Enter a number between 0 and 1: ")

# For Python3, the line:
x=eval(input("Enter a number between 0 and 1: "))
# should work

使用命令 python ,然后使用Python2的文件名,并使用命令 python3 ,后跟文件名for Python3

<强> Python3:

python3 example.py

<强> Python2:

python example.py

here了解详情。