21

我不知道为什么这不起作用请帮忙

import random
x = 0
z = input('?')
int(z)

def main():
    while x < z:
        n1 = random.randrange(1,3)
        n2 = random.randrange(1,3)
        t1 = n1+n2
        print('{0}+{1}={2}'.format(n1,n2,t1)

当我运行它时,它会输出此错误

File "/Users/macbook/Documents/workspace/gamlir_filar/samlagning.py", line 12

                                                ^
SyntaxError: unexpected EOF while parsing

我正在使用 eclipse 和 python 3.3,但我不知道为什么会发生这种情况。它有时会输出这样的错误。

4

2 回答 2

37

您在 中缺少右) 括号print()

print('{0}+{1}={2}'.format(n1,n2,t1))

而且你也没有存储返回的值int(),所以z仍然是一个字符串。

z = input('?')
z = int(z)

或者简单地说:

z = int(input('?'))
于 2013-05-01T22:20:11.403 回答
2

也许这就是你的意思:

import random

x = 0
z = input('Please Enter an integer: ')
z = int(z) # you need to capture the result of the expressioin: int(z) and assign it backk to z

def main():
    for i in range(x,z):
        n1 = random.randrange(1,3)
        n2 = random.randrange(1,3)
        t1 = n1+n2
        print('{0}+{1}={2}'.format(n1,n2,t1))

main()
  1. 做 z = int(z)
  2. 在列表的最后一行代码中添加缺少的右括号。
  3. 并有一个从 x 迭代到 z-1 的 for 循环

这是 range() 函数的链接:http: //docs.python.org/release/1.5.1p1/tut/range.html

于 2013-05-01T22:39:47.737 回答