我正在通过John Zelle的Python编程(For Python 3)工作,直到最近我一直在运行10.7的MacBook Pro上完成所有工作。我在两个平台上都在使用Eclipse Juno。我决定用Windows 7将我的所有项目移到我的电脑上并将它们导入Eclipse Juno。我注意到每个eval(input())
的应用程序都被破坏了,但他们都在使用Macbook。对于我从书中输入的任何代码,这同样是新的。为什么这在一个平台上工作而在另一个平台上不工作?以下是适用于MacOS但不适用于Windows的代码示例:
def main():
sum = 0.0
count = 0
xStr = input("Enter a number (<Enter> to quit) >> ")
while xStr != "":
x = eval(xStr)
sum = sum + x
count = count + 1
xStr = input("Enter a number (<Enter> to quit) >> ")
print("\nThe average of the numbers is", sum / count)
main()
这在Mac上工作正常但在Windows中吐出此错误:
Enter a number (<Enter> to quit) >> 5
Traceback (most recent call last):
File "C:\Users\Nostromo\workspace\Chapter 11\average4.py", line 18, in <module>
main()
File "C:\Users\Nostromo\workspace\Chapter 11\average4.py", line 12, in main
x = eval(xStr)
File "<string>", line 1
5
^
SyntaxError: unexpected EOF while parsing
答案 0 :(得分:2)
如果将input()更改为raw_input()怎么办?
答案 1 :(得分:1)
eval(input())
是一种愚蠢的方式来获得你想要的东西,本书的作者不应该建议你使用它。将其更改为int(input())
,您会更开心。