"Vielfaches von 3 und 5"
Von den natürlichen Zahlen unter 10 gibt es vier, die Vielfache von 3 oder 5 sind, und die Summe davon ist 23.
Ermitteln Sie auf die gleiche Weise die Summe der Zahlen, die kleiner als 1000 sind und ein Vielfaches von 3 oder 5 sind.
Mit der Listeneinschlussnotation können Sie etwas schreiben, das einem Funktionstyp nahe kommt.
Listeneinschlussnotation
multiplesOf3or5 = [n for n in range(1, 1000) if n % 3 == 0 or n % 5 == 0]
answer = sum(multiplesOf3or5)
print(answer)
Wenn Sie es eher wie einen Funktionstyp mit der Filterfunktion schreiben,
Funktionsart
def isMultipleOf3or5(n):
return n % 3 == 0 or n % 5 == 0
multiplesOf3or5 = filter(isMultipleOf3or5, range(1, 1000))
answer = sum(multiplesOf3or5)
print(answer)
In Python wird der Funktionsname so wie er ist zu einem Funktionsobjekt, sodass Sie den Funktionsnamen einfach in das erste Argument der Filterfunktion schreiben können. Es ist viel einfacher und intuitiver als C # -Delegierte.
Sie können die Funktion auch durch einen Lambda-Ausdruck ersetzen. Lambda-Ausdrücke in Python Lambda [Argument 1], [Argument 2]: [Ausdruck] Ich werde es schreiben als. (Ich habe nur zwei Argumente geschrieben, aber natürlich sind drei oder mehr in Ordnung.)
Lambda-Stil
multiplesOf3or5 = filter(lambda n: n % 3 == 0 or n % 5 == 0, range(1, 1000))
answer = sum(multiplesOf3or5)
print(answer)
Wenn Sie den Lambda-Ausdruck verwenden, ähnelt er der Listeneinschlussnotation. In diesem Fall ist die Tabellennotation in der Liste meiner Meinung nach intuitiver als der Lambda-Ausdruck.
Recommended Posts