2016-11-06 7 views
0
print('Enter a mathematical expression: ') 
expression = input() 
space = expression.find(' ') 
oprand1 = expression[0 : space] 
oprand1 = int(oprand1) 
op = expression.find('+' or '*' or '-' or '/') 
oprand2 = expression[op + 1 : ] 
oprand2 = int(oprand2) 
if op == '+': 
ans = int(oprand1) + int(oprand2) 
print(ans) 

Так что скажем, что пользователь вводит 2 + 3 с пробелом между символами. Как мне получить его для печати 2 + 3 = 5? Мне нужен код для работы со всеми операциями.Оценка математического выражения (python)

+0

Какую версию python вы используете? http://stackoverflow.com/questions/1093322/how-do-i-check-what-version-of-python-is-running-my-script – AbrahamB

+0

Anaconda spyder –

+0

Можете ли вы напечатать результат 'import sys'' sys.version' – polka

ответ

0

Я бы предложил что-то в этих строках, я думаю, что у вас может возникнуть сложный синтаксический разбор значений из входного выражения.

Вы можете просто вызвать метод .split() в строке ввода, который по умолчанию разбивается на пробел '', поэтому строка '1 + 5' вернет ['1', '+', ' 5' ]. Затем вы можете распаковать эти значения в три переменные.

print('Enter a mathematical expression: ') 
expression = input() 
operand1, operator, operand2 = expression.split() 
operand1 = int(operand1) 
operand2 = int(operand2) 
if operator == '+': 
ans = operand1 + operand2 
print(ans) 
elif operator == '-': 
    ... 
elif operator == '/': 
    ... 
elif operator == '*': 
    ... 
else: 
    ... # deal with invalid input 

print("%s %s %s = %s" % (operand1, operator, operand2, ans)) 
+0

Можете ли вы объяснить мне, что означают 3 точки и что означает «% s% s% s =% s»? –

+0

конечно! Я просто сделал ... чтобы указать, что вы можете просто заполнить те разделы, как предыдущий. Это не настоящий код. – chatton

+0

% s - строка формата, вы можете указать значения (в этом случае операторы и операнд и ответ). каждый% s соответствует значению, которое вы передаете после%. Сначала я их смутил. Существует метод string.format, который, на мой взгляд, является лучшей практикой. Таким образом, вы можете прочитать об этом слишком – chatton