Почему оператор «else» выполняется, хотя «if» было истинным? - PullRequest
0 голосов
/ 04 мая 2020

Я не могу понять, почему вывод оценивается как "?" вместо int (3). Может ли кто-нибудь объяснить это? Запуск Python 3.8.

number1=3
number2=1
operator="*"
if operator =="+":
    answer=number1+number2
if operator =="-":
    answer=number1-number2
if operator =="*":
    answer=number1*number2
if operator =="/":
    answer=number1/number2
else:
    answer="?"
print(answer)

Я попробовал функцию поиска, но не смог найти ничего, что решило бы мою проблему. Спасибо за вашу помощь!

Ответы [ 2 ]

3 голосов
/ 04 мая 2020

Вы запускаете несколько if подряд. Оператор else является частью последнего if и не действует в предыдущем ifs. Попробуйте это -

if operator =="+":
    answer=number1+number2
elif operator =="-":
    answer=number1-number2
elif operator =="*":
    answer=number1*number2
elif operator =="/":
    answer=number1/number2
else:
    answer="?"
1 голос
/ 04 мая 2020

Последний оператор else будет выполняться, пока operator != "/"。 Вы должны использовать elif оператор

Правильный путь:

number1=3
number2=1
operator="*"
if operator =="+":
    answer=number1+number2
elif operator =="-":
    answer=number1-number2
elif operator =="*":
    answer=number1*number2
elif operator =="/":
    answer=number1/number2
else:
    answer="?"
print(answer)
...