x = [4,3,2,1]
y = [2,4,6,8]
print(x,y)
La variable x
est gardée en mémoire comme telle tant qu'elle n'aura pas été modifiée.
z = x + [7,8]
print(z)
print([12] + x + [9] + y)
print([3]*4)
#création d'une liste vide
v = []
print(v)
L'extraction de coefficient se fait à l'aide des [..]
(commandes de slicing). Que font les commandes suivantes ?
print(y[0])
print(y[2])
print(y[0:3])
print(y[1:3])
print(y[2:3])
print(y[1:])
print(y[2:])
Attention, si vous voulez recopier la liste x
dans une nouvelle variable w
, la commande suivante ne fonctionne pas :
w=x
w
n'est pas une copie, mais une nouvelle référence vers la liste x
.
w[2]=88
print(x)
Pour créer un nouvel objet liste, on pourra utiliser la méthode .copy().
x = [4,3,2,1]
w=x.copy()
w[2]=88
print(x)
print(w)
#les commandes suivantes renvoient la même liste
[0,1,2,3]
list(range(0,4))
list(range(4))
#si on souhaite créer une séquence avec un pas différent de 1 :
list(range(12,2,-1))
list(range(1,9,2))
Les fonctions en Python
ont toutes la même syntaxe : nomfonction(variables)
.
Exemples : que font les fonctions suivantes ?
len(y)
sum(y)
del(y[2])
Nous cherchons à créer nos propres fonctions.
La syntaxe de création d'une fonction est la suivante :
def nomdemafonction(x1,x2,...xp):
instructions
return y
($x_{1}, ..., x_{p}$) est la liste des arguments d'entrée de la fonction nom
, arguments donnés par l'utilisateur.
$y$ est l'argument de sortie.
Exemple :
pm(a,b)
, qui retourne l'addition et la soustraction de a
et de b
.def pm(a,b):
plus = a+b
moins = a-b
res = (plus,moins)
return res
a
et de b
.pm(12,7)
(19, 5)
if conditions:
instructions1
else:
instructions2
On peut parcourir directement les élements d'une liste donnée :
for i in liste:
instructions
Pour parcourir des indices entiers, on utilise la fonction range
:
for i in range(début,fin):
instructions
while conditions:
instructions
a = [8,5,-2,1,2]
nulpos(a)
[0, 0, -2, 0, 0]
puiss(liste)
qui met à la puissance $i$ le $i^{eme}$ élément de liste
.puiss(a)
[8, 25, -8, 1, 32]
nbre_pairs(liste)
qui compte le nombre d'entier pair d'une liste
d'entiers relatifs.nbre_pairs(a)
3
on utilisera la fonction a%b
qui calcule le reste dans la division euclidienne de a
par b
.
minval(liste)
qui retourne la plus petite valeur d'une liste, ainsi que son indice.Exemple :
minval(a)
(-2, 2)
algoeucli(a,b)
qui calcule le pgcd de deux entiers non nuls a et bExemple :
algoeucli(237,18)
3
base2(n)
permettant de récupérer l'écriture en base 2 d'un entier n
.Indications
L'écriture en base 2 d'un nombre n
est obtenu en récupérant les restes successifs des divisions par 2 de n et des quotients sussessivement obtenus.
Exemple :
$10=2 \times \textbf{5} + \underline{0}$
$5=2 \times \textbf{2} + \underline{1}$
$2=2 \times \textbf{1} + \underline{0}$
$1=2 \times \textbf{0} + \underline{1}$
Ainsi 10 s'écrit 1010 en base 2.
En Python, le quotient entier de $a$ par $b$ d'une division euclidienne est donné par a//b
.
Exemple d'écriture en base 2 :
base2(103)
[1, 1, 0, 0, 1, 1, 1]
base8(n)
permettant de récupérer l'écriture en base 8 d'un entier n
, en se basant sur le modèle de l'exercice précédent.Exemple :
base8(103)
[1, 4, 7]
On peut facilement passer de la base 2 à la base 8. Il suffit de parcourir le nombre binaire de la droite vers la gauche en regroupant les chiffres binaires 3 par 3 : chaque paquet de 3 (le dernier devant être parfois complété par des 0 à gauche) est l'écriture binaire d'un chiffre en base 8.
Exemple :
1100111 en base 2 va se regrouper de la façon suivante : 001 100 111. En convertissant chacun de ces blocs en chiffre octal, on obtient 1 4 7, soit 147 en base 8.
base2_8(L)
permettant de récupérer l'écriture en base 8 d'un entier, à partir de son écriture en base 2 (donnée sous forme de liste L
).Exemple :
base2_8(base2(103))
[1, 4, 7]