Maison >développement back-end >Tutoriel Python >Pourquoi print(lyrics()) renvoie-t-il « Aucun » même si la fonction « lyrics() » imprime « La toute première ligne » ?

Pourquoi print(lyrics()) renvoie-t-il « Aucun » même si la fonction « lyrics() » imprime « La toute première ligne » ?

DDD
DDDoriginal
2024-12-08 22:28:13866parcourir

Why does print(lyrics()) return

Pourquoi la sortie « Aucun » ? Démêler les deux instructions d'impression

Un problème particulier survient lors de l'utilisation de la fonction suivante :

def lyrics():
    print("The very first line")
print(lyrics())

Au lieu de l'attendu "La toute première ligne", la sortie renvoie de manière déconcertante "La toute première ligne" suivie de "Aucun".

Dévoiler le caché Vérités

Le coupable derrière ce comportement déroutant réside dans la présence de deux déclarations imprimées. Dans la fonction paroles, la première instruction est chargée d’afficher « La toute première ligne ». Cependant, la fonction ne renvoie pas explicitement de valeur, ce qui signifie que Python lui attribue la valeur par défaut None.

La deuxième instruction print en dehors de la fonction tente ensuite d'afficher la valeur renvoyée par lyrics(). Puisque la fonction renvoie effectivement Aucun, elle imprime « Aucun » sur le terminal.

Résoudre le problème : adopter la déclaration de retour

Pour remédier à cette situation et garantir l'obtention du résultat souhaité sortie, modifiez la fonction lyrics pour renvoyer explicitement une valeur. En ajoutant une instruction return, vous pouvez dicter la valeur produite par la fonction.

Par exemple, considérons le code suivant :

def lyrics():
    print("The very first line")
    return None

print(lyrics())

Maintenant, le code affichera correctement "Le tout premier line", car l'instruction return dans la fonction lyrics renvoie explicitement None.

Comprendre le retour Par défaut

Il convient de noter que si vous omettez l'instruction return dans une fonction, Python renvoie automatiquement None. Bien qu'il ne soit pas explicitement indiqué dans le code, ce comportement est crucial pour comprendre pourquoi les fonctions qui ne spécifient pas explicitement une valeur de retour affichent toujours Aucune.

Exemples supplémentaires

Pour en savoir plus Pour clarifier, considérez l'extrait de code suivant :

def test1():
    print("In function.")

a = test1()
print(a)  # Prints None

print(test1())  # Prints "In function." and then None

test1()  # Prints "In function." and returns None (not printed)

Dans cet exemple, test1() renvoie implicitement None en raison de l'absence d'instruction return. Par conséquent, les instructions print suivantes se comportent comme mentionné précédemment.

Pour garantir une valeur de retour spécifique, utilisez l'instruction return avec la valeur souhaitée. Par exemple :

def test():
    return "ACV"

print(test())  # Prints "ACV"

a = test()
print(a)  # Prints "ACV"

En renvoyant explicitement « ACV » dans la fonction test(), la sortie affiche correctement la valeur souhaitée.

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