2016-08-03 22 views
1

Ich versuche, die If-Anweisung Formulare mit Typ-For-Schleife integriert zu lernen, und ich kann die Unterschiede zwischen diesen Codes nicht verstehen, weil sie das gleiche Ergebnis:Python Wenn statment-Unterschiede

grade = [100, 97, 73, 56, 78,34] 
for i in range(0,len(grade)): 
    if grade[i]%2 == 0: 
     grade[i]= grade[i]+2 
    if grade[i]%3 ==0: 
     grade[i]= grade[i]+3 
    if grade[i]%5 ==0: 
     grade[i]= grade[i]+5 
print grade 

und diese:

grade = [100, 97, 73, 56, 78,34] 
for i in range(0,len(grade)): 
    if grade[i]%2 == 0: 
     grade[i]= grade[i]+2 
     if grade[i]%3 ==0: 
       grade[i]= grade[i]+3 
      if grade[i]%5 ==0: 
       grade[i]= grade[i]+5 
print grade 

Antwort

2

Wenn Sie if Aussagen untereinander haben, es ist möglich, dass etwas, das man OR einen anderen mithalten können. Wenn Sie verschachtelte if Anweisungen haben, um Ihre Bedingung zu durchlaufen, muss eine AND andere übereinstimmen.

Betrachten Sie in Ihrem ersten Fall: 10. Es wird %2 == 0 und %5 == 0 übergeben, aber nicht die %3 == 0. Im zweiten Fall wird es nur den ersten Test bestehen und nicht zu den verschachtelten.

Zum Beispiel: 30 wird alle if Anweisungen in beiden Fällen übergeben.

+0

Ich versuche es jetzt - der zweite Fall gehen throe die 3 Bedingungen – newGIS

+0

Ja, weil Sie Ihre 2, 3 und 5 hinzufügen, wenn vorherige Bedingung übereinstimmte. Im Falle von '100', die den ersten Test bestanden haben, addieren Sie' 2', was Ihnen '102' gibt und den zweiten Test und dann den Wert 105 ergibt, also auch den dritten. Es wird alle drei 'if's durchlaufen, aber nicht die ganze Zeit. – PatNowak

1

Beide Code ist gleich, aber der Hauptunterschied ist in ersten Code enthält drei, wenn die Bedingung, die von oben nach unten oder einem nach der anderen und den zweiten Code drei verschachtelte wenn Bedingung Anweisung, die ausgeführt werden, wenn erste Aussage wahr ist

learn more from c-sharpcorner.com

ausgeführt enthält
+0

Ist Ihre Antwort viel anders als die angenommene Antwort? –