Variable non reconnue

SenLie_ Messages postés 12 Statut Membre -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -

Bonjour,

Je programme un jeu de pendu pour un cours, tout marchait bien jusqu'à ce que je dois faire une fonction, normalement très simple qui demande à l'utilisateur d'insérer une lettre. Cependant, ma variable choix ne fonctionne pas. J'ai cependant déjà utilisé la même méthode avec d'autres fonctions, en utilisant global et en pensant bien à l'appel de la fonction, mais cela ne fonctionne pas.
Je suis débutante et j'aimerais bien un petit peu d'aide.
Voici ma fonction :

3 réponses

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     

    Bonjour,

    A l'avenir, merci de poster ton code correctement sur le forum ( et non pas une image ! ) en utilisant l'icone prévue à cet effet lors de la rédaction de tes messages.

    Ensuite... regarde ce que fais ceci :

    def unefonction(unevariable):
        return str(input("choisir une valeur")) + unevariable
        
    choix = unefonction("12345")
    print(choix)

    0
  2. PierrotLeFou
     

    @jordane45:
    Je ne sais pas ce que tu voulais montrer avec ce test.
    Par défaut, input() retourne un type str()

    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       

      regarde comment j'ai utilisé les variables ....

      Comment on passe une variable dans une fonction

      Comment on utilise une variable provenant d'une fonction (via le return)

      0
      1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
         

        As tu au moins testé le code que je t'ai fourni ?

        Vois tu ce qu'il fait ?

        Cela ne t'aide t'il pas un minimum à comprendre le souci dans ton code ?

        0
  3. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     

    Bonjour,

    @jordane45 StatutModérateur, c'est PierrotLeFou qui t'a écrit pas SenLie_ :-) De plus, je pense que PierrotLeFou te dit que ça ne sert à rien d'envelopper l'appel d'input dans str(...) car input retourne déjà une str..

    @PierrotLeFou je pense que jordane45 voulait montrer qu'il est inutile de passer par une variable global (comme proposé dans le message initial de SenLie_), on peut simplement jouer sur la valeur retournée par la fonction saisir_lettre.

    Cependant les extraits de code proposés jusqu'à présent ne contrôlent pas si la saisie ne comporte qu'une seule lettre non accentuée. Il faudrait plutôt écrire :

    def saisir_lettre(text :str = "") -> str:
        ok = False
        while not ok:
            s = input(text)
            s = s.lower()
            ok = (len(s) == 1) and 'a' <= s <= 'z'
        return s
    
    lettre = saisir_lettre("Veuillez saisir une lettre non accentuée : ")
    print(lettre)

    Exemple :

    (mando@silk) (~) $ python3 saisie.py 
    Veuillez saisir une lettre non accentuée : é
    Veuillez saisir une lettre non accentuée : ab
    Veuillez saisir une lettre non accentuée : A
    a

    Bonne chance

    0