Maison >développement back-end >Tutoriel Python >Pourquoi ma fonction Python renvoie-t-elle « Aucun » au lieu du résultat attendu ?

Pourquoi ma fonction Python renvoie-t-elle « Aucun » au lieu du résultat attendu ?

DDD
DDDoriginal
2024-11-28 11:00:10369parcourir

Why Does My Python Function Return `None` Instead of the Expected Output?

Comprendre le comportement de retour de la fonction Python

Pourquoi cette simple fonction Python renvoie-t-elle Aucun à sa fin ?

def printmult(n):
    i = 1
    while i <= 10:
        print(n * i, end=' ')
        i += 1

Explication :

En Python, chaque fonction renvoie une valeur. Si une instruction return n'est pas explicitement fournie, la valeur de retour par défaut est None. Dans ce cas, la fonction printmult() ne spécifie aucune valeur de retour, elle renvoie donc par défaut Aucune.

Attente :

Il est possible de s'attendre à tort à ce que printmult(30) se comportera différemment de la réalité. Voici une précision :

  • printmult(30) évalue la fonction printmult() avec l'argument 30.
  • La fonction imprime la table de multiplication de 30 de 1 à 10, ce qui donne le sortie "30 60 90 120 150 180 210 240 270 300" (sans les guillemets).
  • Cependant, la fonction ne renvoie aucune valeur spécifique.
  • print() prend ensuite la valeur de retour de printmult(30) (qui est None) et l'imprime , ce qui n'entraîne aucune sortie visible puisque None n'a pas de chaîne représentation.

Recommandation :

Pour éviter ce comportement, renvoyez explicitement une valeur souhaitée à la fin de la fonction. Par exemple, vous pouvez renvoyer le dernier élément de la table de multiplication :

def printmult(n):
    i = 1
    while i <= 10:
        print(n * i, end=' ')
        i += 1
    return n * 10

print(printmult(30))  # Now returns 300

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn