Введение
В этом проекте вы научитесь создавать скрипт на Python, который выводит все воскресенья за заданный год. Это полезный навык для любого, кто должен работать с датами и задачами, связанными с временем, в своих проектах программирования.
👀 Предварительный просмотр
python Sunday.py 2022
2022-01-02
2022-01-09
2022-01-16
2022-01-23
2022-01-30
2022-02-06
2022-02-13
2022-02-20
...
🎯 Задачи
В этом проекте вы научитесь:
- Как использовать модули
datetimeиcalendarв Python для работы с датами - Как написать функцию, которая вычисляет и возвращает список всех воскресений за заданный год
- Как обрабатывать ввод пользователя и аргументы командной строки в скрипте на Python
- Как усовершенствовать и настроить скрипт, чтобы сделать его более гибким и удобным для пользователя
🏆 Достижения
После завершения этого проекта вы сможете:
- Разобраться, как работать с датами и временем в Python
- Написать скрипт, который может вывести все воскресенья за заданный год
- Настроить скрипт для обработки различных годов и ввода пользователя
- Применить свои новые знания к другим задачам, связанным с датами, в своих проектах программирования
Создайте файл Sunday.py
В этом шаге вы создадите файл Sunday.py и установите начальную структуру скрипта.
- Создайте файл
Sunday.pyв директории~/project.
cd ~/project
touch Sunday.py
- Добавьте следующий код в файл:
import datetime
import sys
## Функция для вывода всех воскресений за заданный год
def print_sundays(year):
sundays = [] ## Список для хранения воскресений
date = datetime.date(year, 1, 1) ## Начните с 1 января заданного года
delta = datetime.timedelta(days=1) ## Определите временной интервал в 1 день
## Найдите первое воскресенье года
while date.weekday()!= 6: ## 6 обозначает воскресенье (понедельник - 0, воскресенье - 6)
date += delta ## Перейдите к следующему дню
## Выведите все воскресения в году
while date.year == year: ## Цикл, пока год не изменится
sundays.append(
date.strftime("%Y-%m-%d")
) ## Добавьте воскресенье в список (форматированное как YYYY-MM-DD)
date += datetime.timedelta(
weeks=1
) ## Перейдите к следующему воскресенью (увеличьте на 1 неделю)
return sundays ## Верните список воскресений
## Прочитайте год из аргумента командной строки
if len(sys.argv) > 1:
year = int(sys.argv[1]) ## Преобразуйте аргумент командной строки в целое число
sundays = print_sundays(year) ## Вызовите функцию, чтобы получить список воскресений
for sunday in sundays:
print(sunday) ## Выведите каждое воскресенье
else:
print(
"Пожалуйста, укажите год в качестве аргумента командной строки."
) ## Отобразите сообщение об ошибке, если год не указан
Этот код устанавливает базовую структуру скрипта Sunday.py, включая функцию print_sundays() и обработку аргументов командной строки.
Разберитесь в коде
В этом шаге вы поймете назначение и функциональность кода в файле Sunday.py.
- Функция
print_sundays()принимает параметрyearи возвращает список всех воскресений в этом году. - Функция начинается с создания объекта
datetime.dateс заданнымyearи первым днем года (1 января). - Затем она находит первое воскресенье года, перебирая дни до тех пор, пока день недели не будет равен 6 (воскресенье).
- Как только первое воскресенье найдено, функция входит в цикл, который продолжается до конца года. В каждой итерации она добавляет текущее воскресенье в список
sundaysи переходит к следующему воскресенью (добавляя временной интервал в 1 неделю). - Наконец, функция возвращает список воскресений.
- Основная часть скрипта читает год из аргумента командной строки и вызывает функцию
print_sundays()с указанным годом. Затем она выводит каждое воскресенье из списка. - Если аргумент командной строки не указан, скрипт отображает сообщение об ошибке.
Запустите скрипт
В этом шаге вы запустите скрипт Sunday.py и изучите вывод.
- Откройте терминал и перейдите в директорию
/home/labex/project. - Запустите скрипт
Sunday.pyс конкретным годом в качестве аргумента командной строки:
python Sunday.py 2022
Вы должны увидеть следующий вывод:
2022-01-02
2022-01-09
2022-01-16
2022-01-23
2022-01-30
2022-02-06
2022-02-13
2022-02-20
2022-02-27
2022-03-06
2022-03-13
2022-03-20
2022-03-27
2022-04-03
2022-04-10
2022-04-17
2022-04-24
2022-05-01
2022-05-08
2022-05-15
2022-05-22
2022-05-29
2022-06-05
2022-06-12
2022-06-19
2022-06-26
2022-07-03
2022-07-10
2022-07-17
2022-07-24
2022-07-31
2022-08-07
2022-08-14
2022-08-21
2022-08-28
2022-09-04
2022-09-11
2022-09-18
2022-09-25
2022-10-02
2022-10-09
2022-10-16
2022-10-23
2022-10-30
2022-11-06
2022-11-13
2022-11-20
2022-11-27
2022-12-04
2022-12-11
2022-12-18
2022-12-25
Вывод показывает все воскресенья в году 2022.
Резюме
Поздравляем! Вы завершили этот проект. Вы можете практиковаться в более многих лабораторных работах в LabEx, чтобы улучшить свои навыки.



