Variable non reconnue

Fermé
SenLie_ Messages postés 12 Date d'inscription mardi 1 novembre 2022 Statut Membre Dernière intervention 24 mai 2024 - 4 mars 2023 à 18:28
mamiemando Messages postés 33407 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 novembre 2024 - 6 mars 2023 à 17:31

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

jordane45 Messages postés 38316 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 novembre 2024 4 705
4 mars 2023 à 18:52

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
PierrotLeFou
4 mars 2023 à 19:17

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

0
jordane45 Messages postés 38316 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 novembre 2024 4 705
4 mars 2023 à 19:20

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
jordane45 Messages postés 38316 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 novembre 2024 4 705 > jordane45 Messages postés 38316 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 novembre 2024
4 mars 2023 à 19:21

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
mamiemando Messages postés 33407 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 novembre 2024 7 806
6 mars 2023 à 17:31

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