Gérer les dates de n'importe quelle année

PythonPythonBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce projet, vous allez apprendre à créer un script Python qui imprime tous les dimanches d'une année donnée. C'est une compétence utile pour quiconque doit travailler avec des dates et des tâches liées au temps dans ses projets de programmation.

👀 Aperçu

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
...

🎯 Tâches

Dans ce projet, vous allez apprendre :

  • Comment utiliser les modules datetime et calendar en Python pour gérer les dates
  • Comment écrire une fonction qui calcule et renvoie une liste de tous les dimanches d'une année donnée
  • Comment gérer l'entrée utilisateur et les arguments de ligne de commande dans un script Python
  • Comment améliorer et personnaliser le script pour le rendre plus flexible et convivial pour l'utilisateur

🏆 Réalisations

Après avoir terminé ce projet, vous serez capable de :

  • Comprendre comment travailler avec les dates et l'heure en Python
  • Écrire un script qui peut imprimer tous les dimanches d'une année donnée
  • Personnaliser le script pour gérer différentes années et l'entrée utilisateur
  • Appliquer vos nouvelles connaissances à d'autres tâches liées aux dates dans vos projets de programmation

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/FunctionsGroup -.-> python/arguments_return("Arguments and Return Values") python/ModulesandPackagesGroup -.-> python/standard_libraries("Common Standard Libraries") python/PythonStandardLibraryGroup -.-> python/date_time("Date and Time") subgraph Lab Skills python/conditional_statements -.-> lab-302733{{"Gérer les dates de n'importe quelle année"}} python/arguments_return -.-> lab-302733{{"Gérer les dates de n'importe quelle année"}} python/standard_libraries -.-> lab-302733{{"Gérer les dates de n'importe quelle année"}} python/date_time -.-> lab-302733{{"Gérer les dates de n'importe quelle année"}} end

Créez le fichier Sunday.py

Dans cette étape, vous allez créer le fichier Sunday.py et configurer la structure initiale du script.

  1. Créez un fichier Sunday.py dans le répertoire ~/project.
cd ~/project
touch Sunday.py
  1. Ajoutez le code suivant au fichier :
import datetime
import sys


## Fonction pour imprimer tous les dimanches d'une année donnée
def print_sundays(year):
    sundays = []  ## Liste pour stocker les dimanches
    date = datetime.date(year, 1, 1)  ## Commence par le 1er janvier de l'année donnée
    delta = datetime.timedelta(days=1)  ## Définit un décalage de 1 jour

    ## Trouvez le premier dimanche de l'année
    while date.weekday()!= 6:  ## 6 représente dimanche (lundi est 0 et dimanche est 6)
        date += delta  ## Passez au lendemain

    ## Affichez tous les dimanches de l'année
    while date.year == year:  ## Boucle jusqu'à ce que l'année change
        sundays.append(
            date.strftime("%Y-%m-%d")
        )  ## Ajoutez le dimanche à la liste (formaté comme AAAA-MM-JJ)
        date += datetime.timedelta(
            weeks=1
        )  ## Passez au dimanche suivant (incrémentez de 1 semaine)

    return sundays  ## Retournez la liste des dimanches


## Lisez l'année à partir de l'argument de ligne de commande
if len(sys.argv) > 1:
    year = int(sys.argv[1])  ## Convertissez l'argument de ligne de commande en entier
    sundays = print_sundays(year)  ## Appelez la fonction pour obtenir la liste des dimanches
    for sunday in sundays:
        print(sunday)  ## Affichez chaque dimanche
else:
    print(
        "Veuillez fournir une année en tant qu'argument de ligne de commande."
    )  ## Affichez un message d'erreur si aucune année n'est fournie

Ce code configure la structure de base du script Sunday.py, y compris la fonction print_sundays() et la gestion des arguments de ligne de commande.

Comprenez le code

Dans cette étape, vous allez comprendre le but et la fonctionnalité du code dans le fichier Sunday.py.

  1. La fonction print_sundays() prend un paramètre year et renvoie une liste de tous les dimanches de cette année.
  2. La fonction commence par créer un objet datetime.date avec l'year donné et le premier jour de l'année (1er janvier).
  3. Elle trouve ensuite le premier dimanche de l'année en parcourant les jours jusqu'à ce que le jour de la semaine soit 6 (dimanche).
  4. Une fois le premier dimanche trouvé, la fonction entre dans une boucle qui continue jusqu'à la fin de l'année. Dans chaque itération, elle ajoute le dimanche actuel à la liste sundays et passe au dimanche suivant (en ajoutant un décalage de 1 semaine).
  5. Enfin, la fonction renvoie la liste des dimanches.
  6. La partie principale du script lit l'année à partir de l'argument de ligne de commande et appelle la fonction print_sundays() avec l'année fournie. Elle imprime ensuite chaque dimanche de la liste.
  7. Si aucun argument de ligne de commande n'est fourni, le script affiche un message d'erreur.

Exécutez le script

Dans cette étape, vous allez exécuter le script Sunday.py et observer la sortie.

  1. Ouvrez un terminal et accédez au répertoire /home/labex/project.
  2. Exécutez le script Sunday.py avec une année spécifique en tant qu'argument de ligne de commande :
python Sunday.py 2022

Vous devriez voir la sortie suivante :

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 sortie montre tous les dimanches de l'année 2022.

✨ Vérifier la solution et pratiquer

Sommaire

Félicitations ! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires sur LabEx pour améliorer vos compétences.