2016-04-03 1 views
-1

Я пытался закодировать простой калькулятор на графическом интерфейсе python, но получаю сообщение об ошибке синтаксиса. Я новичок в программировании, поэтому я не уверен, что делать.Ошибка синтаксиса при чтении данных с помощью ввода()

Traceback (most recent call last): 
    File "C:\Users\kmart3223\Desktop\Martinez_K_Lab1.py", line 126, in <module> 
    main() 
    File "C:\Users\kmart3223\Desktop\Martinez_K_Lab1.py", line 111, in main 
    operation = input("What operations should we do (+, -, /, *):") 
    File "<string>", line 1 
    + 
    ^
SyntaxError: unexpected EOF while parsing 

Код

def main(): 
    operation = input("What operations should we do (+, -, /, *):") 
    if(operation != '+' and operation != '-' and operation != '/' and operation != '*'): 
     print ("chose an operation") 
    else: 
     variable1 = int(input("Enter digits")) 
     variable2 = int(input("Enter other digits")) 
     if (operation == "+"): 
      print (add(variable1, variable2)) 
     elif (operation == "-"): 
      print (sub(variable1, variable2)) 
     elif (operaion == "*"): 
      print (mul(variable1, variable2)) 
     else: 
      print (div(variable1, variable2)) 
main() 
+1

Python 2 или Python 3? – erip

+0

Вы используете Python 2. Используйте 'raw_input', а не' input' – idjaw

+0

Закройте причину Typo, разрешенный в манере. – Drew

ответ

0

использование raw_input() вместо input()

input() интерпретирует данные вы вводите в качестве выражения в Python. raw_input(), с другой стороны, возвращает введенную строку.

2

если вы используете питона 2x использовать raw_input()

>>> input()   # only takes python expression 
>>> input() 
+ 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "<string>", line 1 
    + 
    ^
SyntaxError: unexpected EOF while parsing 
>>> input() 
'+'     # string ok 
'+' 
>>> input() 
7     # integer ok 
7 
>>> raw_input()    # Takes input as string 
+ 
'+' 
+1

Yup. Чтобы помочь OP, вероятно, это поможет воспроизвести их ошибку в том же контексте, на который вы отвечаете, чтобы помочь им визуализировать происходящее. Используйте '+', например, в качестве ввода вместо 'hello' – idjaw

+1

@idjaw обновлено, спасибо – Hackaholic

+0

В частности,' input() 'пытается оценить вход, как если бы это было выражение python. Таким образом, передача '5 + 7' на входе будет возвращать 12. И так же, как в обычном скрипте, просто запись' + 'является недопустимым синтаксисом. – Reti43

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