Pour l'ensemble des programmes suivants, on vous demande :
de saisir le code du programme dans un fichier
de l'exécuter et comprendre le résultat affiché
si une erreur se produit, de trouver un moyen de la corriger.
Il peut également être intéressant de faire un résumé des différentes commandes sous forme d'une fiche de révision.
Les codes python présents sur cette page peuvent être exécutés en appuyant sur le bouton Exécute situé en dessous de chacun d'entre eux. Le code sera exécuté sur une machine personnelle à mon domicile sauf si elle est éteinte, dans ce cas un message d'erreur vous alertera de l'impossibilité de l'exécution.
Le résultat de l'exécution sera affiché dans la fenêtre prévue à cet effet sur cette page.
1.1. Les types de base
1.1.1. Les booléens
Les booléens bool représentent les valeurs vrai ou faux.
1.1.1.a combinaisons (and_or_xor_not.py)
vrai =True
faux =False
print(vrai or faux)
print(vrai and faux)
print("vrai ou vrai", vrai | faux)
print("vrai et faux", vrai & faux)
print("vrai et vrai", vrai & vrai)
print("vrai ou exclusif vrai", vrai ^ vrai)
print("non vrai = ",not(True))
print("non faux = ",not(False))
On rappelle les tables de vérité des opérateurs logiques :
A
B
A or B
A and B
A xor B
False
False
False
False
False
False
True
True
False
True
True
False
True
False
True
True
True
True
True
False
Table de vérité
1.1.2. Les chaînes
Les chaînes de caractères str représentent des mots ou des phrases entre guillemets.
Le premier indice d'une chaîne (i.e. l'indice du première caractère) commence à 0.
1.1.2.a input, print (input.py)
nom =input("saisir votre nom ? ")
print("bonjour " + nom)
Note : le code précédent ne s'exécutera pas en raison du input demande un saisie au clavier.
1.1.2.b indices (str_indices.py)
chaine ="lalelilolu"
print(len(chaine))
print(chaine[0])
print(chaine[1])
print(chaine[2:])
print(chaine[2:4])
print(chaine[:4])
print(chaine[3:-2])
1.1.2.c multiplication de chaine (str_mul.py)
La multiplication des ... chaines.
print(3 * "oh !")
print("oh !" * 3)
oh ="oh! " * 3
print( oh )
print(len(oh))
1.1.2.d parcours de chaine : for (str_enum_char.py)
On peut parcourir une chaîne en itérant sur ses valeurs.
Le terme itération en informatique fait référence au parcours d'un container, un container étant un objet qui contient d'autres objets.
chaine ="lalelilolu"
# pour tout caractere dans la chaine faire
for caractere in chaine:
print(caractere)
1.1.2.e parcours de chaine : indice (str_enum_index.py)
On peut parcourir une chaîne en itérant sur ses indices. Le premier caractère de la chaîne étant en position 0.
chaine ="lalelilolu"
# avec un while
indice =0
while indice <len(chaine):
print(chaine[indice])
indice = indice + 1
# avec un for et enumerate
for indice,caractere inenumerate(chaine):
print(indice,caractere)
1.1.3. Les réels
Les nombres réels sont appelés nombres à virgule flottante float et peuvent représenter des nombres dde l'ordre de $± 10^{±308}$. Il s'agit en fait de nombres en double précision.
1.1.3.a opérations de base (float_basic.py)
x =2.0
y =3.0
z = x / y
print(z)
print(type(z))
1.1.3.b résolution d'une équation du second degré (float_sqrt.py)
Pour utiliser des fonctions mathématiques comme la racine carrée (sqrt), les fonctions trigonométriques, etc, il faut faire appel à la librairie mathématique.
Le type entier int représente des valeurs comprises dans l'intervalle -2_147_483_648 et 2_147_483_647.
1.1.4.a opérations de base (int_basic.py)
x =2
print("x=",x)
y =3
print("y=",y)
z = x * y / 4
print("z=", z)
v = y / x # division classique (réel)
w = y // x # division entière
print("v=", v)
print("w=", w)
1.1.4.b affectations (int_assignments.py)
x, y, z =2,4, -5
print(x, y, z)
u, v = x*y+z, y/x-z
print(u, v)
1.1.4.c échange de valeurs (int_swap.py)
a =10
b = -3
print(a,b)
a,b = b,a
print(a,b)
1.2. Les types complexes
1.2.1. Les listes / tableaux
Les tableaux ou les listes list() sont gérés de la même manière. Ils sont définis par une liste de valeurs entre crochets.
1.2.1.a création (list_create.py)
# définition d'une liste en donnant les valeurs
liste =[1,2,3,"coucou",3.14]
print(liste)
# génération des valeurs entre 1 et 9
liste =[ i for i inrange(1,10)]
print(liste)
La fonction range génère au fur et à mesure des valeurs entières croissantes :
range(a,b) génère des valeurs dans l'intervalle $[a, b-1]$
range(b) génère des valeurs dans l'intervalle $[0, b-1]$
range(a,b,c) génère des valeurs dans l'intervalle $[a, b-1]$, en commençant par $a$ puis en ajoutant à chaque itération $c$, on obtient donc $a, a+c, a+2c$, etc
Comme on le voit, la borne supérieure est toujours diminuée de 1.
1.2.1.b indices (list_indices.py)
On peut faire référence à un élément de la liste en utilisant son indice entre crochets, le premier éléments se trouvant à l'indice 0. On peut également définir des plages d'indices[0:2] qui signifie les éléments aux indices 0 et 1.
liste =["pomme","poire","abricot"]
# affiche la longueur
print(len(liste))
# affiche la liste
print(liste)
print(liste[0])
print(liste[2])
print(liste[0:1])
print(liste[0:2])
liste[1:3]=["fraise","orange"]
print(liste)
liste =["pomme","poire","abricot"]
liste[1:2]=["fraise","orange"]
print(liste)
liste =["pomme","poire","abricot"]
liste[1:2]="fraise"
print(liste)
1.2.1.c append, insert, remove, del (list_app_ins_rem_del.py)
On peut :
ajouter un élément en fin de liste grâce à append(valeur)
ajouter un élément n'importe où dans la liste grâce à insert(indice, valeur)
supprimer un élément en utilisant sa valeur grâce à remove(valeur)
supprimer un élément en utilisant son indice grâce à del liste[indice]
# definition d'une liste
liste =["pomme","poire","abricot"]
# ajout d'un élément en fin de liste / tableau
liste.append('orange')
print(liste)
# ajout au début
liste.insert(0,"banane")
print(liste)
# ajout après le premier élément de plusieurs éléments
liste.insert(1,["kiwi","lemon"])
print(liste)
# suppression d'un élément existant
liste.remove("banane")
print(liste)
# suppression d'un élément non existant
# provoquera une erreur
# liste.remove("ananas")
# print(liste)
# suppresion d'un élément suivant son indice
del liste[0]
print(liste)
1.2.1.d insertion de sous liste (list_ins_sub_list.py)
Le problème du code précédent est que l'insertion de la liste
["kiwi", "lemon"] dans liste
génère une liste contenant une liste :
['banane', ['kiwi', 'lemon'], 'pomme', 'poire', 'abricot', 'orange']
Si on supprime l'élément à l'indice 1 de la liste, c'est
["kiwi", "lemon"] qui est supprimé et non pas
"kiwi".
Si on désire n'avoir qu'une seule liste il faut procéder ainsi :
# definition d'une liste
liste =[1,4,5]
sous_liste =[2,3]
# ajout d'une sous-liste dans la liste pour n'avoir q'une
# liste de valeurs
liste[1:1]= sous_liste
print(liste)
1.2.1.e parcours, appartenance (list_in.py)
liste =["pomme","poire","abricot"]
# parcours sur les valeurs
for element in liste:
print(element)
# parcours sur les indices avec for
for indice inrange(len(liste)):
print( liste[indice])
# parcours sur les indices avec while
indice =0
while indice <len(liste):
print( liste[indice])
indice +=1
# enumerate
# utilisation de l'indice et de l'élément
print("enumerate:")
print("-" * 10)
for indice, element inenumerate(liste):
print( indice, element )
# vérification de la présence d'un élément dans la liste
if"poire"in liste:
print("poire appartient à la liste")
else:
print("poire n'appartient pas à la liste")
# vérification de l'absence d'un élément dans la liste
if"pastèque"notin liste:
print("pastèque n'appartient pas à la liste")
else:
print("pastèque appartient à la liste")
1.2.1.f tri (list_sort.py)
liste =["pomme","poire","abricot"]
# tri par ordre croissant des valeurs
liste.sort()
print(liste)
# tri par ordre décroissant des valeurs
liste.sort(reverse=True)
print(liste)
1.2.1.g nombre d'occurrences, indice (list_count_index.py)
liste =["jean","sans","terre","jean","sans","peur","jean","le","bon"]
# nombre d'occurrences de "jean"
print("il y a ", liste.count("jean")," jean dans la liste")
# indice de "sans" en commençant à l'indice 0
print(liste.index("sans"))
# indice de "sans" en commençant à l'indice 2
print(liste.index("sans",2))
1.2.2. Les tuples
Les tuples sont des listes (ou tableaux) immuables.
1.2.2.a tuple (tuple_app_mod.py)
t1 =(1,2,3)
print( t1 )
# impossible
# t1.insert(4)
print(t1[0], t1[2])
print(t1)
# provoque une erreur
t1[1:2]=(10)
Note : la dernière instruction provoque une erreur car on ne peut modifier un tuple.
1.2.2.b tuple parcours (tuple_enum.py)
t1 =(1,2,3)
for valeur in t1:
print(valeur)
for indice,valeur inenumerate(t1):
print(indice,valeur)
1.2.3. Les ensembles
Les ensembles sont définis par les accolades { 1, 2, 3 }.
Note : la dernière instruction provoque une erreur car on tente de supprimer la valeur 7 qui n'est pas dans l'ensemble.
1.2.3.b tuple d'un ensemble (set_enum.py)
set1 ={1,2,3,2,1,4,2}
for element in set1:
print(element)
for indice, element inenumerate(set1):
print(indice, element)
1.2.4. Les tableaux associatifs / associations
Les tableaux associatifs dict() également appelés dictionnaires en Python sont introduits avec des accolades comme les ensembles et établissent une correcpondance entre une clé et une valeur.
1.2.4.a dictionnaire définition (dico_def.py)
# dictionnaire de personnes avec nom et année de naissance