J'apprends de nouvelles choses et je n'arrive pas à comprendre tout le processus de retour en lisant mes textes et en regardant en ligne. Je crois que j'ai besoin de me l'expliquer une fois pour que je puisse l'envelopper.
Le code ici fonctionne comme prévu; Je voudrais que l'utilisateur entre un nombre, puis s'il est inférieur à 0, imprime 0, s'il est supérieur ou égal à zéro, imprime le nombre.
def positiveNumber():
num = int(input("Please enter a number: "))
if num <= 0:
return 0
else:
return num
positiveNumber()
print(num)
Ce qui ne fonctionne pas est l'endroit où je veux juste que la fonction renvoie les valeurs, puis ne me donne la réponse que lorsque j'appelle la fonction.
def positiveNumber():
num = int(input("Please enter a number: "))
if num <= 0:
print("0")
else:
print(num)
positiveNumber()
Mon shell ne cesse de me dire que "nom 'num' est non défini ".
3 Réponses :
num est un variable locale qui n'existe que dans positiveNumber () .
Vous voulez:
print(positiveNumber())
Alors, serait-ce dire que je n'appelle pas vraiment ma fonction? Au lieu de cela, j'imprime juste le résultat?
@Genoxidus C'est incorrect. Vous appelez la fonction. Lorsque la fonction se termine, elle renvoie sa valeur de retour, qui est ensuite imprimée.
La variable num est définie dans votre fonction. Il n'existe donc que dans le «périmètre» de la fonction.
Lorsque vous appelez la fonction, vous devriez essayer
print(positiveNumber())
La valeur renvoyée est quelque chose que vous devez attribuer à une variable afin de l'utiliser.
Votre fonction renvoie la valeur de num
Vous pouvez donc soit
a = positiveNumber() print(a)
ou vous pouvez le stocker quelque part, puis l'utiliser.
Cela se produit parce que le nom num n'existe que dans la fonction, il est calculé et la VALEUR est renvoyée. Vous pouvez donc soit imprimer directement cette VALUE , soit la stocker dans une variable et l'utiliser ensuite.
Voici le code qui a fonctionné:
def positiveNumber():
num = int(input("Please enter a number: "))
if num <= 0:
return 0
else:
return num
print(positiveNumber())
Merci beaucoup!
Merci pour le conseil. J'ai mis à jour la réponse que j'ai utilisée avec la coche.
numest une variable locale qui n'existe que danspositiveNumber (). Vous recherchez peut-êtreprint (positiveNumber ()).pourrait valoir la peine de vérifier "portée des variables": python-textbok.readthedocs.io/en/1.0/...