/ Syntaxe Python / Python pour les conditions chaînées - python, opérateur conditionnel

Syntaxe Python pour les conditions chaînées - python, opérateur conditionnel

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 № 1

Bien 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.