Задать вопрос
@VictorG2023

Почему условие if срабатывает при значении 1?

Здравствуйте.
Помогите пожалуйста понять.

a='программист'
b='программиста'
c='программистов'
x=int(input())
if ((x%10==1) and (not x%100==11) and (not x==11)):
    print(x, a)


Вводим значение 1
В чём причина, почему if считает что условие выполняется?
Я считал что условие выполняется если ввести 11, 121, 591 .
Но 1 не может же быть разделён на 10.
  • Вопрос задан
  • 116 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
QWERTYUIOPas
@QWERTYUIOPas
КраткоОСеБе
if ((x%10==1) and (not x%100==11) and (not x==11)):

  1. 1%10=1; 1==1; True
  2. 1%100=1; 1!=11; True
  3. 1=1; 1!=11; True

!= обозначает не равно.
Потому и срабатывает, что все условия соблюдены.
(not x%100==11) and (not x==11)

Зачем? 11%100 и так равно 11.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@wbw1638
постарайтесь не использовать без необходимости конструкцию not ==, лучше использовать !=. Это вам совет на будущее
Ответ написан
Комментировать
@VictorG2023 Автор вопроса
QWERTYUIOPas спасибо большое что подсказали, что система считает (1%10=1; True) я сам на это не обратил внимание.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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