Script qui affiche la lecture d'un entier naturel

Rachid_1043 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
Rachid_1043 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour

On décide de ≪ lire ≫ un entier comme dans l'exemple suivant:
l’entier p = 1444577 se lit ≪ un 1 trois 4 un 5 deux 7 ≫, ce qui donne le nouvel entier q = 11341527 appelé ≪ lecture ≫ de l’entier p.

J'ai essayé ce programme avec p mais ça donne 34152711, je ne vois pas exactement où est le problème, merci d'avance

def lecture(p):
    chaine = str(p)
    se = set(chaine)
    
    for k in se:
        print(chaine.count(k),k,end =' ')

p = int(input('Entrer un entier naturel: '))
lecture(p)
A voir également:

1 réponse

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, ajoute des print(), cela t'aidera à comprendre.
par ailleurs, n'oublie pas de tester d'autres cas, pas exemple "121".
0
Rachid_1043 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
bonsoir, effectivement ça marche pour des nombres entiers de tailles petites (3 chiffres par exemple), mais pas pour les grands nombres par exemple 44555677899 !!! merci d'avance
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Rachid_1043 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
as-tu testé 121? cela donne quoi?
0
Rachid_1043 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Pour 121 ça donne 2112, donc ça marche, mais pour 44555677899 ça donne 3 5 1 8 2 4 2 7 1 6 2 9 donc !!!!
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Rachid_1043 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
pour 121, je pensais qu'il fallait obtenir 111211.
2112, c'est la lecture de 112, pas de 121.
as-tu ajouté des print(), pour t'aider à comprendre?
0
Rachid_1043 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
pour 112 et 121 ça donne la même chose puisque l'ordre des éléments n'est pas important en considérant la fonction set qui convertit une chaîne de caractères en un ensemble (set), d'ailleurs, j'ai déjà vérifié sur spyder!!!
0