Melangeur de lettres

Fermé
Lasco - 15 juil. 2020 à 16:04
yg_be Messages postés 23352 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 novembre 2024 - 16 juil. 2020 à 21:11
Bonjour,
je ne comprends pas pourquoi ce programme qui consiste à renvoyer un mot mélangé à faire deviner ne fonctionne pas ..( Je viens de commencer la programmation)

from random import*
mot=input('Entrez un mot')
env=''
while len(mot)!=len(env):
c=randint(0,len(mot)-1)
if mot[c].count(env)<mot[c].count(mot):
env=env+mot[c]
print(env)

pari=input('Quel est le mot constitue de ces lettres?')
if pari==mot:
print('Bravo, vous avez devine!')
else:
print('Dommage, c est rate')
A voir également:

4 réponses

yg_be Messages postés 23352 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 novembre 2024 Ambassadeur 1 554
Modifié le 15 juil. 2020 à 16:26
bonjour,
peux-tu utilises les balises de code quand tu postes du code?
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
"ne fonctionne pas": que fait-il?
2
yg_be Messages postés 23352 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 novembre 2024 1 554
Modifié le 15 juil. 2020 à 16:40
je suggère ceci:
ajoute dans ta boucle
print(  mot[c].count(env), mot[c].count(mot) )  
0
J ai suivi ton conseil et après avoir entré un mot le programme rentre bien dans une boucle infinie et affiche 2 0 2 0 2 0 etc..
0
Merci, c'est la première fois que poste sur un forum et je ne savais utiliser les balises de code.. Sinon le code fait en fait une boucle infinie j ai l'impression, mais je ne comprends pas pourquoi la condition de la boucle while reste infiniment respectée.
0
from random import*
mot=input('Entrez un mot')
env=''
while len(mot)!=len(env):
    c=randint(0,len(mot)-1)
    if mot[c].count(env)<mot[c].count(mot):
        env=env+mot[c]
    print(mot[c].count(env),mot[c].count(mot))
print(env)

pari=input('Quel est le mot constitue de ces lettres?')
if pari==mot:
    print('Bravo, vous avez devine!')
else:
    print('Dommage, c est rate')
    


Le code affiche d'abord 'Entrez un mot' et une fois celui-ci rentré une boucle infinie commence affichant
2 0
2 0
2 0
2 0
Etc...
0
yg_be Messages postés 23352 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 novembre 2024 1 554
16 juil. 2020 à 21:11
fais également print de mot[c], de end et de mot.
ensuite, réfléchis: tout semble normal?
0
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
16 juil. 2020 à 13:18
Ca prouve que len(mot) est toujours différent de len(env) ...
0