Sujet : Re: Mon code est lourd
De : alain (at) *nospam* universite-de-strasbourg.fr.invalid (Alain Ketterlin)
Groupes : fr.comp.lang.pythonDate : 06. May 2022, 21:46:00
Autres entêtes
Organisation : Université de Strasbourg
Message-ID : <87r156v407.fsf@universite-de-strasbourg.fr.invalid>
References : 1 2 3
User-Agent : Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)
yves <
yves@free.invalid> writes:
Le Thu, 05 May 2022 22:26:20 +0200, Alain Ketterlin a écrit:
>
(Au passage : pourquoi utiliser des chaînes de caractères pour les mois
?
Un entier serait plus simple à manipuler.)
Pour ce qui est des chaînes de caractères, c'est surtout que j'ai épuré
au maximum mon exposé du problème.
C'était juste une remarque en passant.
En réalité, ma source de donnée actuelle c'est plutôt ce code là:
from datetime import datetime, timedelta, date
>
def genereXdates2():
dateDepart = "26012022"
dateFin = "07052022"
depart = datetime.strptime(dateDepart, '%d%m%Y')
fin = datetime.strptime(dateFin, '%d%m%Y')
date = depart
dict_transcodage = {"6": "S", "0": "D", "1":"L", "2":"M", "3":"M",
"4":"J", "5":"V"}
while date != fin:
yield(date.strftime("%m"),dict_transcodage[date.strftime('%w')],date.strftime('%d'))
date = date + timedelta(1)
Je proposais d'utiliser à la place :
yield (date.month, "LMMJVSD"[date.weekday()], date.day)
(attention, weekday() ne suit pas la même convention que "%w" pour strftime).
C'est toi qui voit.
-- Alain.