Outils pour utilisateurs

Outils du site


icn:facultatif:c_langage_python_liste

Python : listes et tuples (n-uplets)

Les tuples

Les tuples sont des listes immuables c'est à dire que l'on ne peut pas modifier leur contenu après leur création. On ne peut plus y ajouter d'objet ou en retirer. Les tuples se définissent en utilisant des parenthèses comme délimiteur.

Création d'un tuple

tuple_vide = ()
tuple_avec_plusieurs_valeurs = (1, 2, 5)

Usage des tuples

  • affectation multiple :
a, b = 3, 4
(a, b) = (3, 4) # équivalent à l'écriture précédente
  • permettre à une fonction de renvoyer plusieurs valeurs :
def division(entier, divise_par):
    #instructions à mettre pour calculer le quotient et le reste
    return quotient, reste

Les opérations de calcul

Opérations Symboles Exemples
addition + 1 + 3 donne 4
soustraction - 10 - 5 donne 5
multiplication * 3 * 5 donne 15
exponentiation (puissance) ** 2 ** 4 donne 16
division / 9 / 2 donne 4.5
reste de division entière % 5 % 2 donne 1
quotient de division entière // 5 // 2 donne 2

Exercice sur les tuples

Ecris un programme :

  • qui demande à l'utilisateur de saisir deux nombres, le dividende et le diviseur,
  • qui appelle la fonction division() avec en paramètre ces deux nombres,
  • qui renvoie le quotient et le reste de la division euclidienne de ces deux nombres.

Les listes

Les listes sont des objets qui peuvent contenir d'autres objets de n'importe quel type tel que des entiers, des réels, des chaînes de caractères.

Les listes du langage Python correspondent aux tableaux dans d'autres langages de programmation.

Création d'une liste

Il y plusieurs manières de créer une liste :

ma_liste1 = list()                # création d'une liste vide à partir du type list
ma_liste2 = []                    # création d'une liste vide
ma_liste3 = [0]*5                 # création d'une liste contenant 5 cases avec la valeur 0
ma_liste4 = [0 for i n range(5)]  # création d'une liste contenant 5 cases avec la valeur 0
ma_liste5 = [1,2,3,"ICN",[ ]]     # création d'une liste contenant 5 cases avec des données de type différent

Voici le résultat de ces différentes créations de listes :

NomTypeTailleValeur
ma_liste1list0[ ]
ma_liste2list0[ ]
ma_liste3list5[0,0,0,0,0]
ma_liste4list5[0,0,0,0,0]
ma_liste5list5[1,2,3,'ICN', [ ] ]

Accès à une case d'une liste

  • Accès en lecture :
In []: ma_liste5[3]
Out[]: 'ICN'
  • mise à jour d'une case
In []: ma_liste5[3] = 'Informatique'

Le contenu de la liste a changé :

NomTypeTailleValeur
ma_liste5list5[1,2,3,'Informatique', [ ] ]

Opérations sur les listes

DescriptionInstruction pythonContenu de ma_liste5Remarque
Ajouter un élément
à la fin de la liste
ma_liste5.append(56)[1,2,3,'Informatique', [ ], 56 ]
Insérer un élément
dans la liste
ma_liste5.insert(1, “S”)[1,'S',2,3,'Informatique', [ ], 56 ]La lettre S
a été insérée à l'indice 1
Supprimer un élément
dans la liste
ma_liste5.remove(“S”)[1,2,3,'Informatique', [ ], 56 ]Il faut préciser l'élément
à supprimer et non pas son indice
Rechercher un élément dans la listeif element in ma_liste5:
Fournir l'emplacement d'un élément dans la listema liste5.index(element)renvoie 3 à ma liste5.index(2)
  • Parcourir une liste
for element in ma_liste5:
   print(element)

La boucle for permet de parcourir la liste et la variable element va prendre successivement les valeurs de chaque élément de la liste.

  • Parcourir une liste avec la méthode enumerate
for element in enumerate(ma_liste5):
   print(element)
Cela renvoie
(0, 1)
(1, 2)
(2, 3)
(3, 'Informatique')
(4, [])
(5, 56)

La boucle for permet de parcourir la liste et la variable element va prendre successivement un couple de valeurs constitué de l'indice et de la valeur de chaque élément de la liste. Il s'agit d'un tuple (n-uplets)

Exercice1

Voici le programme qui permet de lancer 12 fois un dé et de compter le nombre de fois que l'on a tiré 1,2,3…

import random
k1=k2=k3=k4=k5=k6=0
for i in range(1,13):
        de = random.randint(1,6)
        print (de)
        if de==1:
                k1=k1+1
        elif de==2:
                k2=k2+1
        elif de==3:
                k3=k3+1
        elif de==4:
                k4=k4+1
        elif de==5:
                k5=k5+1
        elif de==6:
                k6=k6+1
print ("le nombre de ",1,"est ",k1)
print ("le nombre de ",2,"est ",k2)
print ("le nombre de ",3,"est ",k3)
print ("le nombre de ",4,"est ",k4)
print ("le nombre de ",5,"est ",k5)
print ("le nombre de ",6,"est ",k6)

Essayez de réaliser le même programme en utilisant des tableaux.

Exercice 2

Écrire un programme qui trouve la plus grande note dans une liste de 10 notes.

Il faudra d'abord saisir les 10 notes. Pour cela, utilisez l'instruction permettant de saisir une valeur numérique que vous ajouterez dans le tableau.

Exercice 3

Ecris un programme répertoire permettant de donner le numéro de téléphone d'une personne à partir de son prénom. Pour cela, tu vas associer des numéros de téléphone à des prénoms en utilisant deux listes :

  • la première liste prenom contiendra les prénoms de telle sorte que le prénom d'une personne soit accessible par prenom[i],
  • la deuxième liste tel contiendra le numéro de téléphone de sorte que le numéro tel[i] soit associé à la personne prenom[i].

Ton programme doit contenir la liste de 10 prénoms et permettre de donner le numéro de téléphone d'un prénom que l'utilisateur va saisir. On suppose que les données ne seront pas saisies par l'utilisateur, mais directement entrées dans le programme.

Exercice 4

Ecrire un programme qui permet la saisie de 4 éléments:
le numéro de jour dans la semaine
le numéro de jour dans le mois
le numéro de mois
l'année
Après avoir contrôlé la valeur de ces 4 données, vous ferez afficher le nom du jour dans la semaine, le numéro du jour, le mois, et l'année.
Pour l'année, si sa valeur est inférieure à 17, c'est une année 2000, sinon, c'est une année 1900.

Exemple de saisie: 3, 10, 5, 16
Affichage correspondant: Mercredi 10 mai 2016.

Les listes bidirectionnelles

Pour représenter une table à double entrée, on peut utiliser les listes de la manière suivante comme pour gérer ce tableau de 4 lignes de 3 colonnes.

Trimestre FrançaisMaths
11215
21416
31812

Création de la liste notes avec les différentes cases contenant la valeur 0:

notes = [ [00 for j in range(4)]  for i in range(3)]  

La liste notes se présente ainsi :

NomTypeTailleValeur
noteslist3[ [0,0,0,0], [0,0,0,0], [0,0,0,0] ]

La case de la colonne i et la ligne j de la liste notes est désignée par l'expression notes[i][j]. Pour mettre la note 15 en Maths au premier trimestre on écrit l'instruction suivante :

notes[2][1] = 15

La liste notes est modifiée :

NomTypeTailleValeur
noteslist3[ [0,0,0,0], [0,10,0,0], [0,15,0,0] ]

Retour au cours : Les instructions du langage Python

icn/facultatif/c_langage_python_liste.txt · Dernière modification: 2017/02/01 16:27 (modification externe)