2013-08-28 4 views
0

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

n,X=input(),0 
    for t in range(int(n)): 
     eval(input()) 
    print(X) 

Traceback (most recent call last): 
    File "prog.py", line 3, in <module> 
    eval(input()) 
    File "<string>", line 1 
    X++ 
    ^
SyntaxError: unexpected EOF while parsing 

Использование raw_input вместо input() в единственном решении я могу найти, но в питоне 3.x input является raw_input(): How do I use raw_input in Python 3

любой другой метод?

FYI; Я пытаюсь решить: http://codeforces.com/problemset/problem/282/A

ответ

0

Удалитьeval() позвонить.

input() в Python 2 является эквивалентом eval(input()) в Python 3, и если вам нужно использовать raw_input() в Python 2, то в Python 3 вы должны удалить eval() вызов.

Вам нужно будет самостоятельно разобрать вход; ++ недействительный оператор Python, вы не можете использовать eval() для решения этой проблемы Codeforces.

Самый простой способ решить проблему отправил это прочитать входную строку:

import sys, itertools 

count = int(next(sys.stdin)) 
x = 0 
for line in itertools.islice(sys.stdin, count): 
    x += 1 if '++' in line else -1 
print(x) 
+0

1/2 раствора. сначала попытайтесь выяснить, что он хочет делать. –

+0

@KarolyHorvath: Решите связанную кодирующую головоломку, которая включает в себя синтаксический анализ с входами 'X ++', '++ X',' X - 'и' --X'. –

+0

X ++ не является допустимым выражением Python. я могу справиться с этим сейчас thanx :). – shifu

Смежные вопросы