3

我正在研究 John Zelle 的 Python Programming (For Python 3),直到最近我一直在运行 10.7 的 MacBook Pro 上完成我的所有工作。我在两个平台上都在 Eclipse Juno 中工作。我决定将我所有的项目转移到装有 Windows 7 的 PC 上,并将它们导入 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
4

2 回答 2

2

如果将 input() 更改为 raw_input() 会怎样?

于 2013-01-27T17:11:36.107 回答
1

eval(input())无论如何,这是一种获得你想要的东西的愚蠢方式,本书的作者不应该建议你使用它。将其更改为int(input()),您会更快乐。

于 2013-01-27T17:12:58.587 回答