@muller_johann

Почему уже задавленное условие попадает в else?

a=int(input())
if a==1:
    print(a, 'программист')
b=a%10
c=a%100
if (b==1 and (not c==11) and (not a==1)):
    print(a, 'программист')
if((b==2 or b==3 or b==4) and (not(c==12 or c==13 or c==14))):
    print(a, 'программиста')
else:
    print(a, 'программистов')

не проходит проверку на единицу она попадает в else
  • Вопрос задан
  • 2237 просмотров
Пригласить эксперта
Ответы на вопрос 2
tsarevfs
@tsarevfs
C++ developer
У первого if нет else. Все следующие проверки выполняются при a=1 обычным образом. В таких случаях удобно использовать сокращенную запись else if — elif
a = int(input())
b = a % 10
c = a % 100
if a == 1:
    print(a, 'программист')
elif (b == 1 and not c == 11 and not a == 1):
    print(a, 'программист')
elif((b == 2 or b == 3 or b == 4) and not(c == 12 or c == 13 or c == 14)):
    print(a, 'программиста')
else:
    print(a, 'программистов')
Ответ написан
Комментировать
Потому что ваш else относится только к последнему if.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы