SyntaxError: неожиданный EOF при разборе

Я понятия не имею, почему это не помогает, пожалуйста, помогите

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, и я понятия не имею, почему это происходит. Он иногда выводит такие ошибки.

Ответ 1

Вам не хватает закрывающей круглой скобки ) в print():

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

и вы также не сохраняете возвращаемое значение из int(), поэтому z по-прежнему является строкой.

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

или просто:

z = int(input('?'))

Ответ 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()
  • do z = int (z)
  • Добавьте отсутствующую закрывающую скобку в последнюю строку кода в своем листинге.
  • И для цикла, который будет перебирать от x до z-1

Здесь ссылка на функцию range(): http://docs.python.org/release/1.5.1p1/tut/range.html