NSI, challenges 1

Exercice 1 :

# 15 mn
def est_majuscule(texte):
    '''
    >>>est_majuscule("e")
    False
    >>>est_majuscule("E")
    True
    >>>est_majuscule("@")
    False
    '''

Exercice 2



# 5 mn
def est_un_chiffre(texte):
    '''
    >>>est_majuscule("1")
    True
    >>>est_majuscule("E")
    False
    >>>est_majuscule("e")
    False
    '''

Exercice 3

# 30 mn
def bon_mot_de_passe(texte):
    '''
    renvoie True si le Texte contient au moins 8 caractères
    et des majuscules,des minuscules, des chiffres, des caractères spéciaux.
    revoie False sinon avec un message d'erreur
    return : (bool,str)
    >>>bon_mot_de_passe("Texte")
    (False,"Votre mot de passe n'est pas assez long.")
    >>>bon_mot_de_passe("1Texte&")
    (False,"Votre mot de passe n'est pas assez long.")
    >>>bon_mot_de_passe("1TexTeTEXTE")
    (False,"Votre mot de passe ne contient pas de caractères spéciaux.")
    >>>bon_mot_de_passe("TexTe5&textE")
    (True,"Merci.")
    '''
# proposition correction exercice 3
def majuscules(texte):
    for caractere in texte:
        if ord(caractere)>=65 and ord(caractere)<=90:
            return True
    return False

def minuscules(texte):
    for caractere in texte:
        if ord(caractere)>=97 and ord(caractere)<=122:
            return True
    return False

def chiffres(texte):
    for caractere in texte:
        if ord(caractere)>=48 and ord(caractere)<=57:
            return True
    return False

def caracteres_speciaux(texte):
    for caractere in texte:
        if ord(caractere)<48 or (ord(caractere)>57 and ord(caractere)<65) or (ord(caractere)>90 and ord(caractere)<97) or (ord(caractere)>122) :
            return True
    return False

def bon_mot_de_passe(texte):
    if len(texte)<8:
       return (False,"Texte trop court")
    if majuscules(texte)==False:
        return (False,"Pas de majuscules")
    if minuscules(texte)==False:
        return (False,"Pas de minuscules")
    if chiffres(texte)==False:
        return (False,"Pas de chiffres")
    if caracteres_speciaux(texte)==False:
        return (False,"Pas de caracteres speciaux")
    return True
def codage_cesar(texte,cle):
    '''
    renvoie le texte codé selon le codage de cesar
    '''

def decodage_cesar(texte,cle):
    '''
    renvoie le texte décodé selon le codage de cesar
    '''