NSI : codage des caractères

La leçon :

Le tp :

Groupe 14h-16h :
lien pour correction en collaboratif
https://py3.codeskulptor.org/#user305_WGiN1ZKHDs_0.py
code session : -MNNaq1mo-hBTKyf8V1s

Groupe 16h-18h :
lien pour correction en collaboratif
https://py3.codeskulptor.org/#user305_DjAAGg92lO7xM34.py
code session : join avec -MNNagPt80q1XiVQd6ku

Une vidéo :

Proposition de correction :

def conversion_minuscules(texte):
    '''
    convertit les lettres majuscules d'un texte en minuscules
    texte : str
    return : str
    >>> a="M Laignel, 59000 Lille."
    >>> conversion_minuscules(a)
    "m laignel, 59000 lille."
    '''
    texte_retour=""
    for lettre in texte:
        ordre_lettre=ord(lettre)
        if ( 65 <= ordre_lettre <= 90 ):
            texte_retour+=chr(ordre_lettre + 32 )
        else :
            texte_retour+=chr(ordre_lettre)
    return texte_retour
            

def conversion_majuscules(texte):
    '''
    convertit les lettres majuscules d'un texte en minuscules
    texte : str
    return : str
    >>> a="M Laignel, 59000 Lille."
    >>> conversion_majuscules(a)
    "M LAIGNEL, 59000 LILLE."
    '''
    texte_retour=""
    for lettre in texte:
        ordre_lettre=ord(lettre)
        if ( "a" <= lettre <= "z" ):
            texte_retour+=chr(ordre_lettre - 32 )
        else :
            texte_retour+=lettre
    return texte_retour



def mdp_secure(mot):
    '''
    détermine si un texte contient au moins des minuscules, des majuscules,
    des chiffres et un caractère spécial
    return : True ou False
    >>> mdp_secure("TOto12@")
    False
    >>> mdp_secure("TOto12@fr")
    True
    >>> mdp_secure("toto12&")
    False
    '''
    minus=False
    maj=False
    chiffres=False
    special=False
    longueur=False
    for lettre in mot:
        if ("A"<=lettre<="Z"):
            maj=True
        if ("a"<=lettre<="z"):
            minus=True
        if ("0"<=lettre<="9"):
            chiffres=True
        if not("A"<=lettre<="Z") and not("a"<=lettre<="z") and not("0"<=lettre<="9"):
            special=True
    if len(mot)>=8:
        longueur=True
    if maj==minus==chiffres==special==longueur==True:
        return True
    return False

def codage_cesar(texte,cle):
    '''
    code un texte selon la méthode de décalage des caractères
    texte :str
    cle : int
    >>> codage_cesar("Cesar",2)
    'Eguct'
    '''
    texte_code=""
    for caract in texte:
        ordre=ord(caract)
        texte_code+=chr(ordre+cle)
    return texte_code

Travail à faire pour le prochain tp :
– écrire un programme en python permettant de lire un fichier .txt,
– de le coder selon la méthode de César,
– d’enregistrer le texte codé sous la forme d’un autre fichier .txt,
– ajouter une fonction permettant de décoder un texte en connaissant sa clé.