Compléter les fonctions ci-dessous pour qu’elles répondent à leurs docstrings.
Exercice 1
def on_change(texte):
'''
convertit les majuscules en minuscules et réciproquement
return : str
>>>on_change("TexTeDEssai12@")
"tEXtEdeSSAI12@"
'''
Proposition correction 1
# proposition correction
def transformation(texte):
nv_texte=""
for caractere in texte:
if ord(caractere)>=65 and ord(caractere)<=90:
nv_caractere=chr(ord(caractere)+32)
if ord(caractere)>=97 and ord(caractere)<=122:
nv_caractere=chr(ord(caractere)-32)
if not(ord(caractere)>=65 and ord(caractere)<=90) or not(ord(caractere)>=97 and ord(caractere)<=122):
nv_caractere=caractere
nv_texte+=nv_caractere
return nv_texte
Proposition correction 2
def transformation(texte):
'''
transforme les majuscules en minuscules et réciproquement
>>>transformation("te1AZ@za")
"TE1az@ZA"
'''
nv_texte=""
for caractere in texte:
nv_caractere=caractere
if ord(caractere)>=65 and ord(caractere)<=90:
nv_caractere=chr(ord(caractere)+32)
if ord(caractere)>=97 and ord(caractere)<=122:
nv_caractere=chr(ord(caractere)-32)
nv_texte+=nv_caractere
return nv_texte
Exercice 2
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 2
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