2016-05-18 1 views
-1

J'ai fait une liste appelée 'l' puis j'ai créé une boucle for avec une instruction if à l'intérieur. L'instruction if est supposée vérifier si num est pair (égal à 0) si c'est le cas, il affichera le num si ce n'est pas le cas, il affichera "Nombre impair".Python if instruction en utilisant Modulo

Pourquoi la première impression de manière incorrecte (2 4 nombre impair!) et le second imprime correctement (nombre impair 2 Nombre impair 4 nombre impair)

je l'ai déjà essayé de changer l'espacement sur le premier mais J'ai continué à obtenir des exceptions de déclaration.

l = [1, 2, 3, 4, 5] 
# First 

for num in l: 
if num % 2 == 0: 
    print num 
else: 
print 'Odd number!' 

print 
print 

#Second 

for num in l: 
    if num % 2 == 0: 
     print num 
    else: 
     print 'Odd number!' 

Sortie:

Première

2 
4 
Odd number! 

Deuxième

Odd number! 
2 
Odd number! 
4 
Odd number! 
+0

L'indentation n'est pas facultative dans les instructions Python 'if' et les boucles' for' –

Répondre

1

Indentation. Python utilise l'indentation pour trouver des étendues dans votre code, donc pour votre première boucle, elle ne fait rien. Reformatez-le comme ceci:

for num in l: 
    if num % 2 == 0: 
     print num 
    else: 
     print 'Odd number!' 

Le deuxième morceau de code était correctement indenté, c'est pourquoi cela a fonctionné.

0

Python se soucie de la quantité d'espaces au début d'une ligne. Cette ligne:

if num % 2 == 0: 

n'est pas considérée comme faisant partie de la boucle for.