############################################################################# # Créé par Jean-Christophe BONNEFOY # le 16/01/2017 en Python 3.5.2 # Exercice 13 du TD de Logique ############################################################################# ############################################################################# # fonction qui va vérifier si la chaine contient au moins 3 chiffres # parametres : # - chaine : mot à vérifier # la fonction retourne True si tout est conforme et False sinon ############################################################################# def yatilaumoins3chiffres(chaine): compteur = 0 for i in range(0, len(chaine)): #on verifie dans la table ASCII si le caractere correspond a un chiffre code_ascii = ord(chaine[i]) if (code_ascii > 47) and (code_ascii < 58): compteur += 1 if (compteur >= 3): return True else : return False ############################################################################# # fonction qui va vérifier si la chaine contient au moins 5 lettres # parametres : # - chaine : mot à vérifier # la fonction retourne True si tout est conforme et False sinon ############################################################################# def yatilaumoins5lettres(chaine): compteur = 0 for i in range(0, len(chaine)): #on verifie dans la table ASCII si le caractere correspond a un chiffre code_ascii = ord(chaine[i]) if ((code_ascii > 64) and (code_ascii < 91)) or ((code_ascii > 96) and (code_ascii < 123)): compteur += 1 if (compteur >= 5): return True else : return False ############################################################################# # fonction qui va vérifier si la chaine contient au moins 3 caractères spéciaux # parametres : # - chaine : mot à vérifier # la fonction retourne True si tout est conforme et False sinon ############################################################################# def yatilaumoins3caracteresspeciaux(chaine): compteur = 0 for i in range(0, len(chaine)): #on verifie dans la table ASCII si le caractere correspond a un chiffre code_ascii = ord(chaine[i]) if ((code_ascii > 32) and (code_ascii < 48)) or ((code_ascii > 57) and (code_ascii < 65)) or ((code_ascii > 90) and (code_ascii < 97)) or ((code_ascii > 122) and (code_ascii < 127)): compteur += 1 if (compteur >= 3): return True else : return False ############################################################################# # fonction qui va vérifier si la chaine est valide selon l'équation trouvée # dans l'exercice A = # parametres : # - chaine : mot à vérifier # la fonction retourne True si tout est conforme et False sinon ############################################################################# def Lemotdepasseestilvalide(chaine): a = yatilaumoins3chiffres(chaine) #print("a = ",a) b = yatilaumoins5lettres(chaine) #print("b = ",b) c = yatilaumoins3caracteresspeciaux(chaine) #print("c = ",c) return (b or (a and c)) #Affichage du titre print('------------------------------------------------------') print(" Le mot de passe est-il Valide ? ") print('------------------------------------------------------') #saisie du mot à vérifier mot=input("Donner le mot de passe à vérifier : ") if Lemotdepasseestilvalide(mot): print ("OUI ",mot, " est un mot de passe valide ") else : print ("NON ",mot, " n'est pas un mot de passe valide ") print('------------------------------------------------------')