Melangeur de lettres

Lasco -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -
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')

4 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    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
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      je suggère ceci:
      ajoute dans ta boucle
      print(  mot[c].count(env), mot[c].count(mot) )  
      0
    2. Lasco
       
      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
  2. Lasco
     
    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
  3. Lasco
     
    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
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      fais également print de mot[c], de end et de mot.
      ensuite, réfléchis: tout semble normal?
      0
  4. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     
    Ca prouve que len(mot) est toujours différent de len(env) ...
    0