Ich habe versucht, diese -If-Anweisung mit Modulo-Operator
x=[2,3,4,7,9]
count=0
for i in x:
if i%2:
count=count+1
print count
warum die Graf 3
ist statt 2
, wie i%2
ist satusfiying nur für "2 und 4"?
Ich habe versucht, diese -If-Anweisung mit Modulo-Operator
x=[2,3,4,7,9]
count=0
for i in x:
if i%2:
count=count+1
print count
warum die Graf 3
ist statt 2
, wie i%2
ist satusfiying nur für "2 und 4"?
Der Modul 2 über 2 ist Null:
>>> 2 % 2
0
So 2 % 2
produziert 0
, was ein falscher Wert ist, und damit die if
Aussage nicht Spiel.
Auf der anderen Seite ist der Modul von 3 über ein bis ist:
>>> 3 % 2
1
1
ist eine von Null verschiedene ganze Zahl ist, so wahr betrachtet.
Mit anderen Worten, der if i%2:
Test entspricht ungerade Zahlen, nicht einmal. Es gibt 3 ungerade Zahlen in deiner Liste.
Denken Sie daran, Modul gibt Ihnen die Rest einer Abteilung. 2 und 4 können sauber durch 2 geteilt werden, so dass kein Rest vorhanden ist. Der if
Test prüft auf einen Rest.
Wenn der boolesche Ausdruck true
ergibt (es kann ein beliebiger Wert ungleich null sein), wird der if-Block ausgeführt.
Sie erreichen können alle geraden Anzahl von Code Aktualisierung zählt wie folgt zu erhalten:
x=[2,3,4,7,9]
count=0
for i in x:
if i%2 > 0 :
count=count+1
print count
die Python Konsole öffnen und tun '4% 2', was ist das Ergebnis? Dann mach '3% 2', was ist das Ergebnis? Welches der Ergebnisse wäre nun "wahr"? Der Modulo-Operator gibt den * Rest * nach einer Division zurück. Wenn die Division gerade ist (wie in "4% 2"), dann gibt es keinen Rest, das Ergebnis ist "0". –