Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/103: Рейтинг темы: голосов - 103, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 18.10.2021
Сообщений: 20

Определить, является ли данный год високосным

18.10.2021, 18:21. Показов 22593. Ответов 15

Студворк — интернет-сервис помощи студентам
Здравствуйте.

Прохожу курс обучения на сайте степик, для начинающих, третий день ломаю голову над не сложной задачей, вроде бы всё понятно, а как в Пайтон ее решить(написать) так, что система приняла на сайте где учусь не выходит. Просьба учесть, что я чайник, и мой уровень знаний минимален.
Ниже выкладу задачу, как и варианты решений, НЕ работающих( или работающих, но не принимаемой сайтом для прохождения курса.

Условия: if, else, elif. Блоки, отступы

Требуется определить, является ли данный год високосным.

Напомним, что високосными годами считаются те годы, порядковый номер которых либо кратен 4, но при этом не кратен 100, либо кратен 400 (например, 2000-й год являлся високосным, а 2100-й будет невисокосным годом).

Программа должна корректно работать на числах 1900≤n≤3000.

Выведите "Високосный" в случае, если считанный год является високосным и "Обычный" в обратном случае (не забывайте проверять регистр выводимых программой символов).

Sample Input 1:

2100

Sample Output 1:

Обычный
--------------------
Sample Input 2:

2000

Sample Output 2:

Високосный
------------------------

n = int(input())
if n % 400 != 0:
print("Обычный")
elif n % 4 == 0 and n % 100 != 0:
print("Обычный")
else:
print("Високосный")

Это работает, но не принимает сайт(для прохождения дальше), думаю надо прописать в условии if все условия сразу, но не выходит((

------------------------

n = int(input())
if n % 400 % 4 % 100 != 0:
print("Високосный")
else:
print("Обычный")

Это не работает, и так и эдак крутил, не выходит.

Всем ответившим Благодарочка, и миллион к карме.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.10.2021, 18:21
Ответы с готовыми решениями:

Определить, является ли год, который ввел пользователь, високосным или не високосным
) Определить, является ли год, который ввел пользователь, високосным или не високосным. Помогите пожалуйста. Заранее спасибочки,

Определить является ли год с данным номером високосным
Дано натуральное число. Требуется определить, является ли год с данным номером високосным. Если год является високосным, то выведите YES,...

Программа определяет является ли год високосным. Пользователь вводит год
При написании программы учтите факт, что год является високосным, если его номер кратен 4, но не кратен 100, а также если он кратен...

15
 Аватар для Semen-Semenich
5233 / 3478 / 1175
Регистрация: 21.03.2016
Сообщений: 8,305
18.10.2021, 18:26
Цитата Сообщение от DanikDD Посмотреть сообщение
Напомним, что високосными годами считаются те годы, порядковый номер которых либо кратен 4, но при этом не кратен 100, либо кратен 400
что у вас
Python
1
2
elif n % 4 == 0 and n % 100 != 0:
    print("Обычный")
Добавлено через 1 минуту
if кратен 4, and но при этом не кратен 100 or либо кратен 400
0
0 / 0 / 0
Регистрация: 18.10.2021
Сообщений: 20
18.10.2021, 18:36  [ТС]
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
что у вас
Python
1
2
elif n % 4 == 0 and n % 100 != 0:
    print("Обычный")
Добавлено через 1 минуту
if кратен 4, and но при этом не кратен 100 or либо кратен 400
Этот вариант мне посоветовали, дружище я не понимаю( как это в пайтоне написать((...то что кратен 4 и не кратен 100 понимаю, то что либо кратен 400 понимаю...Можно ли это всё засунуть в один if не понимаю...сон даже снился сегодня про високосные года))
0
 Аватар для Semen-Semenich
5233 / 3478 / 1175
Регистрация: 21.03.2016
Сообщений: 8,305
18.10.2021, 18:39
if кратен 4, and но при этом не кратен 100 or либо кратен 400
0
enx
 Аватар для enx
1190 / 766 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
18.10.2021, 18:40
Цитата Сообщение от DanikDD Посмотреть сообщение
Можно ли это всё засунуть в один if не понимаю
Пусть теперь снится это


Python
1
print((lambda x: ("Обычный", "Високосный")[not x % 4 and x % 100 or not x % 400])(int(input())))
0
0 / 0 / 0
Регистрация: 18.10.2021
Сообщений: 20
18.10.2021, 18:51  [ТС]
дело в том, это наверняка не пропустит система ибо or не проходили ещё(

Добавлено через 3 минуты
Цитата Сообщение от enx Посмотреть сообщение
Пусть теперь снится это


Python
1
print((lambda x: ("Обычный", "Високосный")[not x % 4 and x % 100 or not x % 400])(int(input())))
Это слишком сложно, курс начальный! Но всё равно оч благодарен за ответ, просто я немного в отчаянии), капельку)

Добавлено через 3 минуты
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
if кратен 4, and но при этом не кратен 100 or либо кратен 400
Пишу повторно ибо с форумом ещё не особо разобрался, ссори. Фyнкцию or не проходили ещё, а значит система не пропустит наверняка ее((, по любому спасибо огромное за идеи, буду пробовать.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38178 / 21113 / 4307
Регистрация: 12.02.2012
Сообщений: 34,716
Записей в блоге: 14
18.10.2021, 18:54
Цитата Сообщение от DanikDD Посмотреть сообщение
Фyнкцию or не проходили ещё, а значит система не пропустит наверняка ее
- пропустит. Stepik пропускает
0
 Аватар для Semen-Semenich
5233 / 3478 / 1175
Регистрация: 21.03.2016
Сообщений: 8,305
18.10.2021, 18:57
Цитата Сообщение от DanikDD Посмотреть сообщение
ибо or не проходили ещё
то есть if elif и and вы изучили а or нет??? и что вы будете делать с условиями не зная логические операторы? их то всего 3 которые изучают вместе с условными или-and, и-or, не-not
1
enx
 Аватар для enx
1190 / 766 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
18.10.2021, 19:01
Лучший ответ Сообщение было отмечено DanikDD как решение

Решение

DanikDD, там скорее всего примерно такие же тестовые системы, как и везде, а следовательно вероятность того, что написан декоратор на отлов каких-то конструкция - близка к нулю.

Вероятно, там 5-10 тестов по принципу ожидаемого ответа.

Но по самой теме, только с if else:


Python
1
2
3
4
5
6
7
8
9
10
11
year = int(input())
if not year % 400:
    print('Високосный')
else:
    if year % 4:
        print('Обычный')
    else:
        if not year % 100:
            print('Обычный')
        else:
            print('Високосный')
1
0 / 0 / 0
Регистрация: 18.10.2021
Сообщений: 20
18.10.2021, 19:23  [ТС]
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
то есть if elif и and вы изучили а or нет??? и что вы будете делать с условиями не зная логические операторы? их то всего 3 которые изучают вместе с условными или-and, и-or, не-not
Проходили но в другом формате, совмещаяя с другими решениями Труэ ор Фэлс, но не вычислениями в одной строке, ниже приведу пример курса:

Логические операции
In [37]:
Python
1
2
a = int(input())
print(a > 0)
-234
False

In [38]:
Python
1
2
a = int(input())
print(a >= 10 and a < 100)
10
True

In [39]:
Python
1
2
a = int(input())
print(10 <= a < 100)
23
True

In [40]:
Python
1
2
x1, x2, x3 = False, True, False
not x1 or x2 and x3
Out[40]:
True

Буду пробовать, СПАСИБО, пишу здесь, ибо на форуме ещё не могу спасибо ставить)
0
 Аватар для Semen-Semenich
5233 / 3478 / 1175
Регистрация: 21.03.2016
Сообщений: 8,305
18.10.2021, 19:27
Лучший ответ Сообщение было отмечено DanikDD как решение

Решение

пробуй
Python
1
2
3
4
5
n = int(input())
if n % 4 == 0 and n % 100 != 0 or n % 400 == 0:
    print("Високосный")
else:
    print("Обычный")
0
0 / 0 / 0
Регистрация: 18.10.2021
Сообщений: 20
18.10.2021, 19:34  [ТС]
Цитата Сообщение от enx Посмотреть сообщение
DanikDD, там скорее всего примерно такие же тестовые системы, как и везде, а следовательно вероятность того, что написан декоратор на отлов каких-то конструкция - близка к нулю.

Вероятно, там 5-10 тестов по принципу ожидаемого ответа.

Но по самой теме, только с if else:


Python
1
2
3
4
5
6
7
8
9
10
11
year = int(input())
if not year % 400:
    print('Високосный')
else:
    if year % 4:
        print('Обычный')
    else:
        if not year % 100:
            print('Обычный')
        else:
            print('Високосный')
Это работает и система Степика пропустила, не за что бы не догадался, именно здесь применить логический оператор not, ибо в примерах и в курсе до этого не изучал именно такого применения(, точнее нет примеров написания в таком контексте скажем(
Буду обдумывать решение задачи теперь), спасибо миллион раз

Добавлено через 2 минуты
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
пробуй
Python
1
2
3
4
5
n = int(input())
if n % 4 == 0 and n % 100 != 0 or n % 400 == 0:
    print("Високосный")
else:
    print("Обычный")
попробую, и это работает! Очень интересный вариант, спасибо огромное!
0
 Аватар для Semen-Semenich
5233 / 3478 / 1175
Регистрация: 21.03.2016
Сообщений: 8,305
18.10.2021, 19:39
Цитата Сообщение от DanikDD Посмотреть сообщение
Очень интересный вариан
что там интересного. просто переведено на язык питона условие которое прямым текстом описано в задании
Цитата Сообщение от DanikDD Посмотреть сообщение
либо кратен 4, но при этом не кратен 100, либо кратен 400
я вам это и написал. оставалось только циферки вместо букв писать
if кратен 4, and но при этом не кратен 100 or либо кратен 400
Python
1
if n % 4 == 0 and n % 100 != 0 or n % 400 == 0:
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38178 / 21113 / 4307
Регистрация: 12.02.2012
Сообщений: 34,716
Записей в блоге: 14
18.10.2021, 19:49
Цитата Сообщение от DanikDD Посмотреть сообщение
ибо на форуме ещё не могу спасибо ставить
- а тэги языка можешь?

Добавлено через 2 минуты
И не надо таких объемных цитат, когда кому-то отвечаешь
0
0 / 0 / 0
Регистрация: 18.10.2021
Сообщений: 20
18.10.2021, 20:41  [ТС]
Спасибо за ответы, учту на будущее...просьба относиться ко мне снисходительнее

Добавлено через 6 минут
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
что там интересного. просто переведено на язык питона условие которое прямым текстом описано в задании я вам это и написал. оставалось только циферки вместо букв писать
if кратен 4, and но при этом не кратен 100 or либо кратен 400
Python
1
if n % 4 == 0 and n % 100 != 0 or n % 400 == 0:
В теме шапки задания прописано было: 1.10 Условия: if, else, elif. Блоки, отступы
И не прописано что можно использовать логические операторы при решении этой задачи, вот я и не сообразил про and, or, not ибо до этого не было в программе обучения, комбинации со связкой if, else, elif.

Добавлено через 1 минуту
Цитата Сообщение от Catstail Посмотреть сообщение
- а тэги языка можешь?

Добавлено через 2 минуты
И не надо таких объемных цитат, когда кому-то отвечаешь
просьба пояснить про теги, не очень понял, про цитаты понял, постараюсь без объёмных.
0
0 / 0 / 0
Регистрация: 18.10.2021
Сообщений: 20
19.10.2021, 17:58  [ТС]
Ещё одно решение, сам додумался, глядя на решения выше можно написать программу без логических операторов, система приняла! Горд собой) естественно без помощи форумчан не справился бы.

Python
1
2
3
4
5
6
7
8
9
10
11
n = int(input())
if n % 400 == 0:
    print('Високосный')
else:
    if n % 4 != 0:
        print('Обычный')
    else:
        if n % 100 == 0:
            print('Обычный')
        else:
            print('Високосный')
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.10.2021, 17:58
Помогаю со студенческими работами здесь

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

Определить, является ли год високосным
Помогите найти ошибку. Не считает какой-то год.В первую строку вывести YES если год с номером N является высокосным и NO в противном...

Определить, является ли год високосным
как написать программу который от печати юзера скажет високосный год или нет.

Требуется определить, является ли данный год высокосным
Требуется определить, является ли данный год високосным. Напомним, что год является високосным, если его номер кратен 4, но при этом...

Определить будет ли год високосным и к какому веку этот год относится
14. Известен ГОД. Определить будет ли этот год високосным, и к какому веку этот год относится.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru