Funktionsprogrammierung in Python Project Euler 1

Problem 1

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

Listeneinschlussnotation

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)

Funktionsart

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.

Lambda-Stil

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

Funktionsprogrammierung in Python Project Euler 1
Funktionale Programmierung in Python Project Euler 3
Funktionsprogrammierung in Python Project Euler 2
[Hinweis] Project Euler in Python (Problem 1-22)
Projekt Euler # 5 "Minimum Multiple" in Python
Programmieren mit Python
Projekt Euler # 15 "Gitterpfad" in Python
Projekt Euler # 4 "Maximale Kalligraphie" in Python
Projekt Euler # 3 "Maximale Primfaktoren" in Python
Projekt Euler # 11 "Maximales Produkt im Raster" in Python
Projekt Euler # 7 "1000 1. Primzahl" in Python
Projekt Euler # 16 "Summe der Kräfte" in Python
Projekt Euler # 9 "Spezielle Pitagolas-Nummer" in Python
Projekt Euler # 14 "Längste Spalte mit Kollatennummern" in Python
Probieren Sie eine funktionale Programmierpipe in Python aus
Projekt Euler # 2 "Gerade Fibonacci-Zahl" in Python
Projekt Euler # 17 "Anzahl der Zeichen" in Python
Projekt Euler # 1 "Vielfaches von 3 und 5" in Python
Python-Programmierung mit Excel
Was ist "funktionale Programmierung" und "objektorientiert"? Python Edition
Projekt Euler # 8 "Maximales Produkt in Anzahl Zeichenfolge" in Python
Projekt Euler # 10 "Summe der Primzahlen" in Python
Projekt Euler # 12 "Hochangepasste Dreiecke" in Python
Projekt Euler # 13 "Summe großer Zahlen" in Python
Projekt Euler # 6 "Differenz in der Summe der Quadrate" in Python
Nehmen Sie Kontakt mit der funktionalen Programmierung in JavaScript oder Python 3 auf
GUI-Programmierung in Python mit Appjar
Projekt Euler 7
Projekt Euler 47
Projekt Euler 31
Projekt Euler 4
Projekt Euler 38
Projekt Euler 17
Projekt Euler 26
Projekt Euler 8
Projekt Euler 23
Projekt Euler 22
Projekt Euler 19
Projekt Euler 50
Projekt Euler 42
Projekt Euler 33
Projekt Euler 32
Projekt Euler 43
Projekt Euler 35
Projekt Euler 36
Projekt Euler 24
Projekt Euler 46
Projekt Euler 48
Projekt Euler 45
Projekt Euler 6
Projekt Euler 44
Erstellen Sie eine Python-Projektdokumentation in Sphinx
Projekt Euler 39
Projekt Euler 40
Projekt Euler 49
Projekt Euler 29
Projekt Euler 27
Projekt Euler 41
Projekt Euler 18
Projekt Euler 11 "Maximales Produkt im Raster"
Projekt Euler 13