Programmation fonctionnelle dans Python Project Euler 1

Problem 1

"Multiple de 3 et 5"

Parmi les nombres naturels inférieurs à 10, il y en a quatre qui sont des multiples de 3 ou 5, et la somme de ceux-ci est 23.

De la même manière, trouvez la somme des nombres inférieurs à 1000 et multiples de 3 ou 5.

Notation d'inclusion de liste

La notation d'inclusion de liste vous permet d'écrire quelque chose de proche d'un type de fonction.

Notation d'inclusion de liste


multiplesOf3or5 = [n for n in range(1, 1000) if n % 3 == 0 or n % 5 == 0]
answer = sum(multiplesOf3or5)
print(answer)

Type de fonction

Si vous l'écrivez plus comme un type de fonction avec la fonction de filtre,

Type de fonction


def isMultipleOf3or5(n):
    return n % 3 == 0 or n % 5 == 0

multiplesOf3or5 = filter(isMultipleOf3or5, range(1, 1000))
answer = sum(multiplesOf3or5)
print(answer)

En Python, le nom de la fonction devient un objet de fonction tel quel, vous pouvez donc simplement écrire le nom de la fonction dans le premier argument de la fonction de filtre. C'est beaucoup plus facile et plus intuitif que les délégués C #.

Style Lambda

Vous pouvez également remplacer la fonction par une expression lambda. Expressions lambda en Python lambda [argument 1], [argument 2]: [expression] Je vais l'écrire comme. (Je n'ai écrit que deux arguments, mais bien sûr trois ou plus sont OK.)

Style Lambda


multiplesOf3or5 = filter(lambda n: n % 3 == 0 or n % 5 == 0, range(1, 1000))
answer = sum(multiplesOf3or5)
print(answer)

Si vous utilisez l'expression lambda, elle sera similaire à la notation d'inclusion de liste. Dans ce cas, je pense que la notation de table dans la liste est plus intuitive que l'expression lambda.

Recommended Posts

Programmation fonctionnelle dans Python Project Euler 1
Programmation fonctionnelle dans Python Project Euler 3
Programmation fonctionnelle dans Python Project Euler 2
[Note] Projet Euler en Python (problème 1-22)
Projet Euler # 5 "Minimum Multiple" en Python
Programmation avec Python
Projet Euler # 15 "Lattice Path" en Python
Projet Euler # 4 "Calligraphie maximum" en Python
Projet Euler # 3 "Maximum Prime Factors" en Python
Projet Euler # 11 "Produit maximum dans la grille" en Python
Projet Euler # 7 "1000 1er nombre premier" en Python
Projet Euler # 16 "Somme des pouvoirs" en Python
Projet Euler # 9 "Numéro spécial Pitagolas" en Python
Projet Euler # 14 "Colonne de nombre de collats la plus longue" en Python
Essayez un tube de programmation fonctionnel en Python
Projet Euler # 2 "Even Fibonacci Number" en Python
Projet Euler # 17 "Nombre de caractères" en Python
Projet Euler # 1 "Multiple de 3 et 5" en Python
Programmation Python avec Excel
Qu'est-ce que la «programmation fonctionnelle» et «orientée objet»? Édition Python
Projet Euler # 8 "Produit maximum en chaîne numérique" en Python
Projet Euler # 10 "somme des nombres premiers" en Python
Projet Euler n ° 12 "Triangles hautement ajustés" en Python
Projet Euler # 13 "Somme des grands nombres" en Python
Projet Euler # 6 "Différence de somme des carrés" en Python
Entrez en contact avec la programmation fonctionnelle en JavaScript ou Python 3
Programmation GUI en Python avec Appjar
Projet Euler 7
Projet Euler 47
Projet Euler 31
Projet Euler 4
Projet Euler 38
Projet Euler 17
Projet Euler 26
Projet Euler 8
Projet Euler 23
Projet Euler 22
Projet Euler 19
Projet Euler 50
Projet Euler 42
Projet Euler 33
Projet Euler 32
Projet Euler 43
Projet Euler 35
Projet Euler 36
Projet Euler 24
Projet Euler 46
Projet Euler 48
Projet Euler 45
Projet Euler 6
Projet Euler 44
Créer une documentation de projet Python dans Sphinx
Projet Euler 39
Projet Euler 40
Projet Euler 49
Projet Euler 29
Projet Euler 27
Projet Euler 41
Projet Euler 18
Projet Euler 11 "Produit maximum dans la grille"
Projet Euler 13