maxfromspace
@maxfromspace
учу HTML CSS JavaScript NodeJS

Python выполняет else, даже если должно срабатывать if, как исправить?

Почему-то выполняется сразу две опции, обязательно преимущественно включая в нее else. Не могу понять, где ошибка.

Часть кода:

what = input ("Что сделать? (+, -, *, /): ")
a = int(input ("Введите первое число: "))
b = int(input ("Введите второе число: "))
if what == "+":
    c = a + b
if what == "-":
    c = a - b
if what == "*":
    c = a * b
if what == "/":
    c = a / b
else:
    c = ("Выбрана неверная операция")
print ("Результат: " + str(c) )
print ( "\nНу как тебе мой калькулятор?: ")
what2 = input ("Введите ответ: ")
if what2 == ("великолепно"):
    answer = ("спасибо)")
    print(answer)
if what2 == ("отстой"):
    answer = ("ты ничего не понимаешь в искусстве")
    print(answer)
else:
    what1 = input ("скажи просто (великолепно или отстой): ")
    if what1 == ("великолепно"):
        answer = ("спасибо)")
    if what1 == ("отстой"):
        answer = ("ты ничего не понимаешь в искусстве")
    else:
        answer = ("ясно...")

    print(answer)

Итог:

Что сделать? (+, -, *, /): +
Введите первое число: 3
Введите второе число: 4
Результат: Выбрана неверная операция

Ну как тебе мой калькулятор?:
Введите ответ: великолепно
спасибо)
скажи просто (великолепно или отстой): отстой
ты ничего не понимаешь в искусстве
  • Вопрос задан
  • 869 просмотров
Пригласить эксперта
Ответы на вопрос 2
@alexbprofit
Junior SE
if what == "+":
c = a + b
elif what == "-":
c = a - b
elif what == "*":
c = a * b
elif what == "/":
c = a / b
else:
c = ("Выбрана неверная операция")

во вторых скобки то зачем перед кавычками после = ?

if what2 == ("великолепно"):
answer = ("спасибо)")
print(answer)
elif what2 == ("отстой"):
answer = ("ты ничего не понимаешь в искусстве")
print(answer)
else:
what1 = input ("скажи просто (великолепно или отстой): ")
if what1 == ("великолепно"):
answer = ("спасибо)")
elif what1 == ("отстой"):
answer = ("ты ничего не понимаешь в искусстве")
else:
answer = ("ясно...")

print(answer)
Ответ написан
MinTnt
@MinTnt
Всё код восспринимает так, как ему подали.
if what == "/":
    c = a / b
else:

Так как если не срабатывает вот это условие, то и будет исполнятся else. Просто нужно было использовать конструкции, if -> elif -> else
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы