Bonjour à toutes et tous,
La fonction CodeDateExU dans le code ci-dessous (2ème fonction) ne me plaît pas, bien qu'elle fonctionne très bien (c'est donc une question de forme, de style ... )
Ce qui trouble le novice que je suis en Python c'est le bloc implicite du while; le but est de reprendre le for tant que on y a fait quelque chose dedans (c.-à-d. on a exécuté ce qui suit le if ligne[0]==code Date)
Vous avez déjà bien fait avancer ma "culture" python, merci de m'aider là; je ne vois pas quel concept algorithmique pourrait faire plus "joli" ...

Le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# EncodeDate : Encode l'instant pour références en une chaine de 12 caractères
# CodeDateExU(date, liste): transforme la date en une chaine unique dans la liste pour référence et tri
#
# Début: 09 dec 2019
#
 
import time
 
def EncodeDate():
    lt= time.localtime(time.time())
    #code= '{0:02.0f}{1:02.0f}{2:02.0f}{3:02.0f}{4:02.0f}{5:02.0f}'.
    #    format(lt[0]-2000, lt[1], lt[2], lt[3], lt[4], lt[5])
    # ex.: 191217200543
    for i, val in enumerate(lt):
        if i==0: code= '{0:02.0f}'.format(val-2000)
        elif i==6: break
        else: code += '{0:02.0f}'.format(val)
    return code
 
def CodeDateExU(codeDate, liste):
    flag= True
    der=len(liste)-1
    while flag:
        for i, ligne in enumerate(liste):
            if ligne[0]==codeDate: codeDate=str(int(codeDate)+1); break
            if i==der: flag= False
    return codeDate