не работает "if"

Elik

Новичок
Пользователь
Окт 17, 2020
21
0
1
windows 7
python 3.5.2
здравствуйте! не работает if.
Код:
n = int(input())
if n % 4 == 0 and n % 100 == 0 and n % 400 == 0:
    print('YES')
else:
    print('NO')
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 566
454
83
а суть задачи какая?
 

Elik

Новичок
Пользователь
Окт 17, 2020
21
0
1
а суть задачи какая?
ввод цифры и YES, если это високосный год, и NO, соответственно.
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 566
454
83
поменяйте and на or
 

Elik

Новичок
Пользователь
Окт 17, 2020
21
0
1
поменяйте and на or
Спасибо большое. Даже не знаю как я так затупил, спасибо
 

Elik

Новичок
Пользователь
Окт 17, 2020
21
0
1
поменяйте and на or
а я вспомнил кое что, если "or", то при написании 1700 не сработает условие 1700 % 400 как с этим быть
 
Последнее редактирование:

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 566
454
83
а я вспомнил кое что, если "or", то при написании 1700 не сработает условие 1700 % 400 как с этим быть
високосный год делиться нацело на 4, если не делиться значит год не високосный, это лишнее условие, можно оставить одно первое
n % 4 == 0
 

Elik

Новичок
Пользователь
Окт 17, 2020
21
0
1
високосный год делиться нацело на 4, если не делиться значит год не високосный, это лишнее условие, можно оставить одно первое
n % 4 == 0
но 1700 1800 они не високосны
  1. Если год делится на 4, переходите к шагу 2. В противном случае переходите к шагу 5.
  2. Если год делится на 100, переходите к шагу 3. В противном случае переходите к шагу 4.
  3. Если год делится на 400, переходите к шагу 4. В противном случае переходите к шагу 5.
  4. Год високосный (в нем 366 дней).
  5. Год не високосный (в нем 365 дней).
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 566
454
83
но 1700 1800 они не високосны
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 566
454
83
но 1700 1800 они не високосны
  1. Если год делится на 4, переходите к шагу 2. В противном случае переходите к шагу 5.
  2. Если год делится на 100, переходите к шагу 3. В противном случае переходите к шагу 4.
  3. Если год делится на 400, переходите к шагу 4. В противном случае переходите к шагу 5.
  4. Год високосный (в нем 366 дней).
  5. Год не високосный (в нем 365 дней).
Python:
n = int(input())
if (n % 4 == 0 and n % 100 != 0) or n % 400 == 0:
    print('YES')
else:
    print('NO')
 

Elik

Новичок
Пользователь
Окт 17, 2020
21
0
1
видимо я ошибся. Спасибо
 

Форум IT Специалистов