Script qui affiche la lecture d'un entier naturel

Signaler
Messages postés
5
Date d'inscription
mardi 30 juin 2020
Statut
Membre
Dernière intervention
3 juillet 2020
-
Messages postés
5
Date d'inscription
mardi 30 juin 2020
Statut
Membre
Dernière intervention
3 juillet 2020
-
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)

1 réponse

Messages postés
11495
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 juillet 2020
657
bonjour, ajoute des print(), cela t'aidera à comprendre.
par ailleurs, n'oublie pas de tester d'autres cas, pas exemple "121".
Messages postés
5
Date d'inscription
mardi 30 juin 2020
Statut
Membre
Dernière intervention
3 juillet 2020
>
Messages postés
11495
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 juillet 2020

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 !!!!
Messages postés
11495
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 juillet 2020
657 >
Messages postés
5
Date d'inscription
mardi 30 juin 2020
Statut
Membre
Dernière intervention
3 juillet 2020

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?
Messages postés
5
Date d'inscription
mardi 30 juin 2020
Statut
Membre
Dernière intervention
3 juillet 2020
>
Messages postés
11495
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 juillet 2020

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!!!
Messages postés
11495
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 juillet 2020
657 >
Messages postés
5
Date d'inscription
mardi 30 juin 2020
Statut
Membre
Dernière intervention
3 juillet 2020

si l'ordre des éléments n'est pas important, pourquoi n'es-tu pas satisfait que pour 44555677899 ça donne 3 5 1 8 2 4 2 7 1 6 2 9 ?
Messages postés
5
Date d'inscription
mardi 30 juin 2020
Statut
Membre
Dernière intervention
3 juillet 2020
>
Messages postés
11495
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 juillet 2020

En ce moment je reviens à la définition de la lecture d'un entier sur Wikipedia, je me suis trompé, vous avez raison la lecture de 112 est 2112 mais pour 121 c'est 111211, donc je devrai faire quelques changements sur le programme et je vais voir, merci