Exercice 84
Examiner l'unicité des chiffres d'un nombre entier en Python
Ecrire une fonction en langage Python appelée chiffres_uniques(n) qui prend en paramètre un entier n strictement positif et vérifie si tous les chiffres de n sont différents. La fonction retourne True si tous les chiffres sont uniques, False sinon.
Exemple : chiffres_uniques(357) retourne True, chiffres_uniques(355) retourne False. On vous demande de traiter le problème de deux méthodes différentes: l'une en utilisant la fonction intégrée str() de python et l'autre sans utiliser cette fonction.
Solution
Méthode 1 : En utilisant str()
|
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 |
def chiffres_uniques(n): """ Cette fonction vérifie si tous les chiffres de n sont différents. Méthode 1 : en utilisant la fonction str(). """ # Conversion du nombre en chaîne de caractères s = str(n) # Conversion de la chaîne en ensemble (set) # Un set ne contient que des éléments uniques ensemble = set(s) # Si la longueur du nombre est égale à la taille de l'ensemble, # alors tous les chiffres sont uniques if len(s) == len(ensemble): return True else: return False # Tests print(chiffres_uniques(357)) print(chiffres_uniques(355)) print(chiffres_uniques(1024)) print(chiffres_uniques(1002)) |
Sortie du programme :
|
1 2 3 4 |
True False True False |
Méthode 2 : Sans utiliser str() (avec divisions)
|
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 28 29 30 31 |
def chiffres_uniques(n): """ Cette fonction vérifie si tous les chiffres de n sont différents. Méthode 2 : sans utiliser la fonction str(). """ chiffres = [] # Liste pour stocker les chiffres extraits while n > 0: # Extraction du dernier chiffre chiffre = n % 10 # Vérification si le chiffre est déjà dans la liste if chiffre in chiffres: return False # Le chiffre se répète # Ajout du chiffre dans la liste chiffres.append(chiffre) # Suppression du dernier chiffre n = n // 10 # Si aucun doublon n'a été trouvé return True # Tests print(chiffres_uniques(357)) print(chiffres_uniques(355)) print(chiffres_uniques(1024)) print(chiffres_uniques(1002)) |
Sortie du programme :
|
1 2 3 4 |
True False True False |
Younes Derfoufi
CRMEF OUJDA



