class Point:
def __init__(self, x=0, y=0):
self.x = x + 1
self.y = y + 1
p1 = Point(1, 2)
print(p1.x, p1.y)
0 0
1 1
1 2
2 3
class Point:
def __init__(self, x=0, y=0):
self.x = x + 1
self.y = y + 1
p2 = Point()
print(p2.x, p2.y)
0 0
1 1
1 2
2 3
double = lambda x: x * 2
triple = lambda x: x * 3
x = 2
x = double(x)
x = triple(x)
x = double(x)
print(x)
2
8
24
SyntaxError
bonjour
qui prend un paramètre prénom
et qui retourne
"Bonjour <prénom> :)"
, par exemple une fois appelée avec l'argument Python
, cette fonction
renverrai "Bonjour Python :)"
.bonjour = ("Bonjour " + a + " :)")
, et l'appel s'écrit: bonjour("Python")
.bonjour = lambda a: "Bonjour " + a + " :)"
, et l'appel s'écrit: bonjour("Python")
.lambda a: "Bonjour " + a + " :) = bonjour"
, et l'appel s'écrit: bonjour("Python")
.filter
, map
, reduce
Bien que ces fonctions soient définies en Python, nous allons les implémenter avec les noms suivants:
a) filtre(fonction, liste)
(filter): fonction qui prend deux paramètres en entrée:
int pour simplifier
).Cette fonction renvoie une nouvelle liste avec seulement les éléments ayant satisfait la fonction de décision.
Voici quelques tests à effectuer pour vérifier son fonctionnement:
# nb impairs
assert filtre(lambda x: x % 2 == 1, [0, 1, 2, 3, 4]) == [1, 3]
# nb pairs
assert filtre(lambda x: x % 2 == 0, [0, 1, 2, 3, 4]) == [0, 2, 4]
b) applique(fonction, liste)
(map): fonction qui prend deux paramètres en entrée:
int pour simplifier
) qui renvoie une valeur.Cette fonction renvoie une nouvelle liste pour laquelle a été appliqué la fonction donnée en argument à chacun des éléments de la liste d'entrée.
Voici quelques tests à effectuer pour vérifier son fonctionnement:
# doubles
assert applique(lambda x: x ** 2, [0, 1, 2, 3, 4]) == [0, 1, 4, 9, 16]
# puissances de 2
assert applique(lambda n: 2**n, [0, 1, 2, 3, 4]) == [1, 2, 4, 8, 16]
c) réduit
(reduce): fonction qui prend deux paramètres en entrée:
Cette fonction renvoie une valeur par l'accumulation des valeurs de la liste par la fonction d'accumulation donnée en argument.
Voici quelques tests à effectuer pour vérifier son fonctionnement:
# addition des éléments
assert réduit(lambda x, y: x + y, [0, 1, 2, 3, 4]) == 10
# soustraction des éléments
assert réduit(lambda x, y: x - y, [0, 1, 2, 3, 4]) == -10
# concaténation des éléments
assert réduit(lambda x, y: str(x) + str(y), [0, 1, 2, 3, 4]) == "01234"
applique
, créer en une ligne une fonction négatif
qui permet de
passer ce test:
python
assert négatif([0, 1, 2, 3, 4]) == [0, -1, -2, -3, -4]
réduit
, créer en une ligne une fonction longueur
qui permet de
passer ces tests:
python
assert longueur([]) == 0
assert longueur([0, 1, 2]) == 3
assert longueur([0, 1, 2, 3, 4]) == 5