En python, les deux valeurs logiques sont True
et False
(avec des majuscules).
(1 == 1), (1 == 2)
(True, False)
is
¶On peut tester la valeur d'une variable booléenne avec le mot-clef is
. L'opérateur ==
fonctionne aussi mais c'est moins propre.
(1 == 1) is (2 == 2)
True
On peut prendre la négation d'une valeur booléenne avec not
not(True)
False
L = [1, 2, 3, 4, 5]
while not(L == []):
print(L.pop())
5 4 3 2 1
L'opération logique ET s'écrit and
et l'opération logique OU s'écrit or
.
for i in [True, False]:
for j in [True, False]:
print(i, " ET ", j, " = ", i and j)
True ET True = True True ET False = False False ET True = False False ET False = False
for i in [True, False]:
for j in [True, False]:
print(i, " OU ", j, " = ", i or j)
True OU True = True True OU False = True False OU True = True False OU False = False
Dans la définition d'une fonction, on peut préciser des paramètres optionnels. Ils sont définis par la syntaxe param=defaut
où param
est le nom du paramètre, et default
est la valeur du paramètre, lorsqu'il n'est pas donné.
Attention : les paramètres obligatoires doivent être specifiés avant les paramètres optionnels.
def decomposition(x, base=10):
r = x
L = []
while r != 0:
L.insert(0, r % base)
r //= base
return L
print(decomposition(1245, 10))
print(decomposition(1245))
print(decomposition(1245, 100))
print(decomposition(1245, 2))
[1, 2, 4, 5] [1, 2, 4, 5] [12, 45] [1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1]
Pour la plupart des types de données (notamment les entiers, flottants, chaînes de caractères), la valeur du paramètre en entrée d'une fonction est copié en début d'exécution de la fonction. Ainsi, si la valeur du paramètre est modifiée dans la fonction, elle reste la même hors de la fonction.
Par exemple :
def incremente(x):
x = x + 1
return x
x = 0
y = incremente(x)
print(x)
print(y)
0 1
Pour d'autres types de données comme les listes, c'est l'adresse mémoire de l'objet qui est copié, de sorte que l'on peut appliquer des fonctions sur l'objet afin de le modifier.
Par exemple :
def ajoute(L, x):
L.append(x)
return L
L = []
print(L)
M = ajoute(L, "a")
print("L =", L)
print("M =", M)
[] L = ['a'] M = ['a']
math
¶Python permet de charger des bibliothèques, c'est-à-dire un ensemble d'objets et de fonctions qui ne sont pas de base dans le langage.
On a déjà vu la bibliothèque random
qui permet de charger la fonction randint
.
La bibliothèque math
permet de charger des fonctions et des nombres particuliers. Par exemple :
from math import ceil, floor
x = 0.5
print(floor(x), ceil(x))
0 1
from math import sin, cos, pi
print(pi)
print(cos(pi/3), sin(pi/3))
3.141592653589793 0.5000000000000001 0.8660254037844386
On remarque que la bibiothèque ne manipule pas les valeurs exactes.
from math import sqrt
x = sqrt(2)
print(x)
1.4142135623730951
from math import gcd
print(gcd(21, 49, 77))
7
matplotlib
¶On utilise la bibliothèque matplotlib
, et très fréquemment le module pyplot
. Pour cela, on peut taper :
import matplotlib.pyplot as plt
Cela crée un objet nommé plt
qui nous sert à créer des graphiques. Plus précisément, on peut voir plt
comme un agrégateur de graphiques. On lui ajoute petit à petit des figures que l'on affichera au moment voulu.
Pour plus d'informations, suivre le lien https://matplotlib.org/stable/index.html
plot
et show
de matplotlib.pyplot
¶La fonction plot
permet d'afficher les données relatives à des points dans le plan. Plus précisément, si X = [x1, x2, ..., xn]
et Y = [y1, y2, ..., yn]
sont les listes des abscisses et des ordonnées des points à tracer, alors on peut exécuter la fonction
plt.plot(X, Y)
pour ajouter ces points au graphique. Ensuite, pour afficher le graphique on utilise la fonction show
:
plt.show()
import matplotlib.pyplot as plt
annees = [i for i in range(2011, 2022) ]
temperatures = [13.6, 12.8, 12.4, 13.8, 13.6, 13.1, 13.4, 13.9, 13.7, 14.1, 12.9]
plt.plot(annees, temperatures)
plt.show()
On peut changer le style de l'affichage :
# plt.plot(annees, temperatures, 'bo') # b : blue, o : cercle
# plt.plot(annees, temperatures, 'r+') # r : red, + : plus
# plt.plot(annees, temperatures, linewidth=5)
# plt.plot(annees, temperatures, linestyle='dashed')
plt.plot(annees, temperatures, '-')
plt.show()
On peut également superposer des graphiques
import matplotlib.pyplot as plt
annees = [i for i in range(2010, 2022) ]
temperatures_paris = [11.8, 13.7, 12.7, 12.1, 13.6, 13.4, 12.9, 13.4, 13.8, 13.6, 14.3, 12.8]
temperatures_marseille = [14.8, 16.2, 15.8, 15.2, 16.8, 16.3, 16.4, 16.2, 17, 16.4, 16.5, 15.9]
plt.plot(annees, temperatures_paris, color='blue')
plt.plot(annees, temperatures_marseille, color='red')
plt.show()
Pour tracer une fonction "usuelle" $f : [a, b] \to \mathbb{R}$ avec matplotlib.pyplot
, une idée est de calculer les valeurs de $f(x)$ pour $x$ parcourant $[a, b]$ avec un petit pas.
Par exemple, si on souhaite tracer la fonction $f : x \mapsto x^2$ entre $-2$ et $2$, on va diviser l'intevalle en pas de $0.01$, puis calculer les $f(x)$ pour les valeurs $x = -2$, $x=-1.99$, $x=-1.98$, ..., $x=1.99$, $x=2$.
import matplotlib.pyplot as plt
a, b = [-2, 2]
X = [a + 0.01 * i for i in range(401)]
Y = [x**2 for x in X]
plt.plot(X, Y)
plt.show()