Je suis un débutant en Python qui s’auto-apprend actuellement via le livre "Comment penser comme un informaticien" À partir d'un exercice du livre sur les conditions chaînées, Syntax a été enseigné comme suit:
def function(x,y)
if ..:
print ".."
elif..:
print ".."
else:
print".."
Cependant, quand j'ai essayé de savoir si c'était légal, cela a fonctionné:
def function (x,y)
if ..:
print ".."
if ..:
print ".."
Ce dernier est-il une syntaxe correcte? Ou n'est-ce même pas considéré comme un conditionnel enchaîné? J'aimerais savoir que même si c'est légal en Python, est-ce un "bon moyen" pour écrire le code?
Toute aide en nature est sincèrement appréciée.
Réponses:
12 pour la réponse № 1Bien que votre deuxième exemple fonctionne, il est ne pas la même chose que le premier exemple. Dans la seconde, chaque if
condition sera évaluée, qu’une condition précédente soit vraie ou exécutée ou non. Dans la chaîne if/elif
Par exemple, le tout est traité comme une unité et seule la première condition vérifiée sera exécutée.
Par exemple:
# An if/elif chain
a = 2
b = 3
if a == 2:
print "a is 2"
elif b == 3:
print "b is 3"
else:
print "whatever"
# prints only
"a is 2"
# even though the b condition is also true.
toutefois
# Sequential if statements, not chained
a = 2
b = 3
if a == 2:
print "a is 2"
if b == 3:
print "b is 3"
# prints both
"a is 2"
"b is 3"
4 pour la réponse № 2
Je n’appellerais pas la deuxième variante un conditionnel enchaîné. C’est juste une séquence de (éventuellement non liée) if
déclarations.
La principale différence est que la première variante exécute toujours exactement un print
déclaration, alors que dans la deuxième variante multiple print
les déclarations peuvent être exécutées.