Tous les cours gratuit

cours python gratuit d’initiation —— Les tuple ET plage

C’est le cours python numéro 12 de la série des cours d’initiation à python.

LE tuple


En plus des listes, il existe d’autres types de données dérivés en Python qui ont des caractéristiques similaires.

Le tuple est aussi une collection d’objets. La seule différence avec la liste est qu’elle n’est plus modifiable une fois initialisée, c’est-à-dire que ses éléments ne peuvent plus être modifiés. On peut donc les lire, mais pas les écrire, ni utiliser des fonctions qui le modifient, comme append(), sort(). On dit que la liste est un objet mutable, tandis que le tuple est immuable.

Pour créer un tuple, vous écrivez ses éléments entre parenthèses. Essayons avec IDLE (j’ai commenté le code pour une meilleure compréhension):

>>> city = ("Rome", "Milan", "Naples") # un tuple de 3 chaînes
>>> len (ville) # ok, je ne change pas le tuple
3
>>> ville [1] # ok, je lis une valeur
'Milan'
>>> ville [2] = "Turin" # erreur, j'essaye de changer une valeur
Traceback (dernier appel le plus récent) :
   Fichier "<pyshell # 10>", ligne 1, dans <module>
     ville [2] = "Turin"
TypeError : l'objet 'tuple' ne prend pas en charge l'affectation d'éléments

Vous vous demandez probablement : quel besoin y a-t-il pour un type de données identique à la liste, mais qui fait moins de choses ? La raison en est l’efficacité : j’ai déjà dit que la philosophie de Python est de cacher le plus possible le travail qu’il fait dans la mémoire de l’ordinateur, afin que le programmeur n’ait pas à s’en soucier. Cependant, il faut bien comprendre que la manipulation d’une liste est une opération très lourde du point de vue de la gestion de la mémoire (la liste pouvant s’allonger et se raccourcir, Python ne sait pas a priori combien de place elle va occuper, et est donc obligé de supprimer et réécrire en continu dans la mémoire de l’ordinateur).

L’utilisation d’un tuple est beaucoup plus simple pour Python : comme il ne peut plus être modifié, il nécessite une quantité fixe de mémoire et donc moins de temps de traitement qu’une liste. Les programmeurs expérimentés utilisent généralement des tuples lorsque vous avez besoin de créer des tables de valeurs prédéfinies qui ne varieront plus tout au long du programme et à partir desquelles vous n’aurez qu’à lire les données.

>>> class_prima_B = ("Abate", "Bartoli", "Concia") #etc.
>>> citta_lazio = ("Viterbo", "Latina", "Rieti", "Frosinone", "Rome")

Enfin il faut dire que Python accepte un tuple même sans écrire les crochets, en écrivant simplement ses éléments séparés par des virgules :

>>> nombres = 1, 2, 3, 4, 5
>>> taper (chiffres)
<classe 'tuple'>

Cette double possibilité peut dérouter les débutants, mais je la signale quand même car on peut la trouver en lisant un programme écrit par d’autres. En particulier, cette syntaxe permet l’affectation multiple, très souvent utilisée dans le langage car elle permet de “sauver” des lignes de code :

a, b, c = 1, 2, 3

c’est-à-dire que nous pouvons affecter plusieurs variables dans une seule instruction : d’abord toutes les expressions de droite sont calculées, puis deux tuples temporaires sont créés et le tuple de droite est affecté à celui de gauche. Il doit y avoir le même nombre de variables à gauche que d’expressions à droite.

Dans tous les cas, étant donné la facilité avec laquelle vous pouvez vous perdre et générer des erreurs inattendues, je recommande pour le moment de toujours utiliser des listes, en laissant la distinction entre listes et tuples jusqu’à ce que vous soyez plus expérimenté.

Range

La plage est encore plus simple : il s’agit simplement d’une séquence d’entiers, également immuables. Il peut être créé avec la fonction range(), qui a trois syntaxes possibles :

Une fonctionSignification
range(stop)
Les nombres de 0 à stop – 1 (stop n’est jamais inclus)
range(start, stop)
Les numéros Du début (inclus) à l’arrêt (non inclus)
range(start, stop, step)
Les numéros étape par étape à partir du début. step peut aussi être négatif pour obtenir une plage de nombres décroissants. Le dernier nombre est inférieur à start si step est positif, supérieur à si step est négatif
cours python

Voyons quelques exemples dans IDLE :

>>> plage (10) # les nombres de 0 à 9
>>> range (-2) # vide : stop est <0
>>> gamme (3, 12) # les nombres de 3 à 11
>>> plage (-6, 0) # les nombres de -6 à -1
>>> plage (-2, 13, 3) # les chiffres (-2, 1, 4, 7, 11) (jusqu'au dernier chiffre <13)
>>> plage (10, 0, -1) # nombres décroissants de 10 à 1 (0 n'est pas inclus)

Notez que dans le cas de la plage IDLE, il ne vous répond qu’en répétant la plage (10), etc. sans vous laisser voir les éléments un par un. Print() a également le même comportement.

CONVERSION


Dans tous les cas, les listes, les tuples et les plages peuvent être convertis les uns dans les autres au moyen de fonctions de conversion spéciales (mais une liste ou un tuple ne peut pas être converti en une plage).

Par exemple, supposons que nous ayons besoin d’une liste avec les 10 000 premiers entiers : les écrire un par un serait carrément ennuyeux ! Cependant, nous pouvons facilement les obtenir sous forme de plage, puis les transformer en liste.

a = plage (10000)
b = liste (a) # une liste de 10000 éléments, impossible à écrire à la main
b = list (range (10000)) # mieux encore : une seule déclaration

Essayez maintenant de demander à IDLE la valeur de b …

INDEX ET CHAÎNES


Le mécanisme d’index fonctionne également pour les chaînes, pour lesquelles nous pouvons indiquer des caractères individuels par leur position dans la chaîne. Python renverra une chaîne composée uniquement du caractère correspondant. Voici un exemple dans IDLE ;

>>> s = "Mamma mia !"
>>> s [0]
'M'
>>> s [4]
'pour'
>>> s [5]
''
>>> s [1] + s [9]
'pour!'

Les chaînes sont cependant un type de données immuable, il n’est donc pas possible d’utiliser des index pour les modifier, ni, évidemment, d’utiliser les fonctions de listes sur celles-ci. Cependant, rappelez-vous qu’au lieu d’ajouter (), nous pouvons toujours utiliser la concaténation (somme entre les chaînes). continue comme ça:

>>> s [2] = "t"
Traceback (dernier appel le plus récent) :
   Fichier "", ligne 1, dans
     s [2] = "t"
TypeError : l'objet 'str' ne prend pas en charge l'affectation d'éléments
>>> s.append (10 * s [9])
Traceback (dernier appel le plus récent) :
   Fichier "", ligne 1, dans
     s.append (10 * s [9])
AttributeError : l'objet 'str' n'a pas d'attribut 'append'
>>> s + = (10 * s [9])
>>> s
'Mamma Mia !!!!!!!!!!!'

Autres articles

Cours : Gestion de Projet en Milieu...
La gestion de projet en milieu insulaire présente des défis...
Read more
Guide : Travailler à Mayotte – Cours...
Mayotte, un département français d'outre-mer situé dans l'océan Indien, attire...
Read more
Analyser la Solvabilité d'une Entreprise au Canada...
L’analyse de la solvabilité d’une entreprise consiste à évaluer sa...
Read more
AZ

Recent Posts

Guide sur le Taux de TVA en Suisse – Template Excel

La taxe sur la valeur ajoutée (TVA) en Suisse est un impôt sur la consommation…

57 minutes ago

Modèle de Fiche de Paie dans Word Vierge

La fiche de paie, également appelée bulletin de salaire, est un document essentiel dans la…

1 heure ago

Comment Gérer Efficacement les Paiements Clients avec un Modèle Excel Intégrant la Gestion des Intérêts

Télécharger un modèle Excel automatisé pour le suivi des paiements clients avec gestion des intérêts…

1 heure ago

Le Carnet de Lettre de Voiture : Modèle Word Vierge

Cet article explique la lettre de voiture, son rôle dans le transport, et l'organisation des…

3 heures ago

Comment Tenir un Livre de Recettes Personnalisé pour Auto-Entrepreneur

Télécharger un modèle de Livre de Recettes Personnalisé pour Auto-Entrepreneur dans Excel 👇 La gestion…

3 heures ago

Modèle Bibliothèque de Prix pour le Bâtiment avec Excel

Une bibliothèque de prix pour le bâtiment dans Excel est un outil précieux pour les…

4 heures ago

This website uses cookies.