Introducción
En este proyecto, aprenderás a crear un script de Python que imprima todos los domingos de un año dado. Esta es una habilidad útil para cualquiera que necesite trabajar con fechas y tareas relacionadas con el tiempo en sus proyectos de programación.
👀 Vista previa
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
...
🎯 Tareas
En este proyecto, aprenderás:
- Cómo utilizar los módulos
datetimeycalendaren Python para manejar fechas - Cómo escribir una función que calcule y devuelva una lista de todos los domingos de un año dado
- Cómo manejar la entrada del usuario y los argumentos de línea de comandos en un script de Python
- Cómo mejorar y personalizar el script para hacerlo más flexible y amigable para el usuario
🏆 Logros
Después de completar este proyecto, podrás:
- Comprender cómo trabajar con fechas y tiempo en Python
- Escribir un script que pueda imprimir todos los domingos de un año dado
- Personalizar el script para manejar diferentes años y la entrada del usuario
- Aplicar tus nuevos conocimientos a otras tareas relacionadas con fechas en tus proyectos de programación
Crea el archivo Sunday.py
En este paso, crearás el archivo Sunday.py y configurarás la estructura inicial del script.
- Crea un archivo
Sunday.pyen el directorio~/project.
cd ~/project
touch Sunday.py
- Agrega el siguiente código al archivo:
import datetime
import sys
## Función para imprimir todos los domingos de un año dado
def print_sundays(year):
sundays = [] ## Lista para almacenar los domingos
date = datetime.date(year, 1, 1) ## Comienza con el 1 de enero del año dado
delta = datetime.timedelta(days=1) ## Define un timedelta de 1 día
## Encuentra el primer domingo del año
while date.weekday()!= 6: ## 6 representa domingo (lunes es 0 y domingo es 6)
date += delta ## Avanza al siguiente día
## Imprime todos los domingos del año
while date.year == year: ## Bucle hasta que el año cambie
sundays.append(
date.strftime("%Y-%m-%d")
) ## Agrega el domingo a la lista (formateado como AAAA-MM-DD)
date += datetime.timedelta(
weeks=1
) ## Avanza al siguiente domingo (incrementa en 1 semana)
return sundays ## Devuelve la lista de domingos
## Lee el año del argumento de línea de comandos
if len(sys.argv) > 1:
year = int(sys.argv[1]) ## Convierte el argumento de línea de comandos a un entero
sundays = print_sundays(year) ## Llama a la función para obtener la lista de domingos
for sunday in sundays:
print(sunday) ## Imprime cada domingo
else:
print(
"Please provide a year as a command-line argument."
) ## Muestra un mensaje de error si no se proporciona un año
Este código configura la estructura básica del script Sunday.py, incluyendo la función print_sundays() y el manejo de argumentos de línea de comandos.
Comprende el código
En este paso, entenderás el propósito y la funcionalidad del código en el archivo Sunday.py.
- La función
print_sundays()toma un parámetroyeary devuelve una lista de todos los domingos de ese año. - La función comienza creando un objeto
datetime.datecon elyeardado y el primer día del año (1 de enero). - Luego, encuentra el primer domingo del año iterando a través de los días hasta que el día de la semana sea 6 (domingo).
- Una vez que se encuentra el primer domingo, la función entra en un bucle que continúa hasta el final del año. En cada iteración, agrega el domingo actual a la lista
sundaysy se mueve al siguiente domingo (sumando un timedelta de 1 semana). - Finalmente, la función devuelve la lista de domingos.
- La parte principal del script lee el año del argumento de línea de comandos y llama a la función
print_sundays()con el año proporcionado. Luego, imprime cada domingo de la lista. - Si no se proporciona un argumento de línea de comandos, el script muestra un mensaje de error.
Ejecuta el script
En este paso, ejecutarás el script Sunday.py y observarás la salida.
- Abre una terminal y navega hasta el directorio
/home/labex/project. - Ejecuta el script
Sunday.pycon un año específico como argumento de línea de comandos:
python Sunday.py 2022
Deberías ver la siguiente salida:
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
La salida muestra todos los domingos del año 2022.
Resumen
¡Felicidades! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.



