web-dev-qa-db-ja.com

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を使用していますが、なぜこれが起こるのか分かりません。時々このようなエラーを出力します。

21
Quar

print()に閉じ括弧_)_がありません:

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

また、int()からの戻り値も保存しないため、zは依然として文字列です。

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

または単に:

_z = int(input('?'))
_
33

たぶんこれはあなたがすることを意味するものです:

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. do z = int(z)
  2. リストの最後のコード行に欠落している閉じ括弧を追加します。
  3. そして、xからz-1に反復するforループがあります

Range()関数に関するリンクを次に示します。 http://docs.python.org/release/1.5.1p1/tut/range.html

2
Kaydell