Tableaux Flashcards
(39 cards)
Quel est le type de donnée qui couvre les structure/enregistrement et les tableaux en Python?
C’est le type objet.
Comment appelle-t-on les tableaux en python?
En python, les tableaux portent le nom de liste.
Que sont les enregistrements/structures?
C’est un groupe de données qui sont accessibles par un nom indiquant la donnée voulue. On appelle ces “noms”, des champs/propriétés ou attributs.
vehicule = struct(marque=’toyota’, annee=2020)
Comment accéder au champ/attribut “marque” de l’enregistrement “vehicule”?
vehicule.marque.
Une structure peut-elle contenir une/d’autre structures?
Oui, il est possible d’avoir des structures/enregistrements à l’intérieur d’autres structures/enregistrements.
Que représentent ‘prenom’ et ‘age’ ?
patient = struct(prenom=’Alain’, age=70)
‘Prenom’ ainsi que ‘age’ representent les champs de la structure “patient”. ‘Alain et ‘70’ sont les valeurs de ces champs.
Quel est l’output de patient?
patient = struct(prenom=’Alain’, age=70)
O: struct(prenom=’Alain,’age=70)
Que fera ‘patient1.age=89’?
patient1 = struct(nom_complet = ‘Alain Desmarais’)
Une erreur sera retournée car la structure patient1 n’a pas d’attribut age donc il n’est pas possible d’écrire.
Cela veut aussi dire qu’il n’est pas possible d’ajouter un attribut à un enregistrement par un autre moyen que de le modifier directement.
Comment fait-on pour modifier la marque de veh par ‘Audi’ et l’année à 2023?
veh = struct(marque = ‘Toyota’, annee = 2020)
veh.marque = ‘Audi’
veh.annee = 2023
Quel types de données peuvent contenir les structures?
Les attributs/champs au sein d’une structure peuvent contenir n’importe quel type de donnée; d’autres objets (Tableaux structures), des strings, des int, floats, boolean etc
Même des fonctions
ex:
les_potes_de_shera = [lambda x: 2*x, ‘abc’]
print(les_potes_de_shera[0] (4))
Comment accéder à l’attribut matrix?
blabla = struct(matrix = [0,0,0,0], values = 4)
On accède au champ matrix avec ‘blabla.matrix’
Dessine le schéma de:
client = struct(nom=’Luc Roy’, naiss=struct(annee=1991, mois=2, quant=11), homme=True)
Que représente l’index -1 dans un tableau?
Le dernier élément du tableau.
Que fait blabla.matrix[-1]?
structure:
blabla = struct(matrix = [0,4,1,2], values = 4)
O: 2
Que fait lolalol[-1]?
lolalol = [489]
O: 489, même quand il y’a seulement un élément avec index 0, il est aussi le dernier élément puisqu’il est unique. De ce fait, il porte aussi l’index -1.
Dans quel interval est situé l’index d’un tableau avec n éléments (de longueur n)?
-n ≤ index < n. Donc strictement inférieur à n (car le premier index positif commence à 0, donc de 0 à n - 1) mais inférieur ou égal à -n.
Ex: tab = [0,1,2,’blabla’,True] est de longueur n = 5.
donc l’index se situe dans l’intervalle:
-5 ≤ index < 5.
Sur quel concept est basée la représentation des structures et tableaux?
La représentation des structures ainsi que des tableaux est basée sur le concept de référence.
t = [1,2,3]
prenom = ‘Alain’
s = struct(tab=t, name = prenom)
Selon ce modèle, expliquez le concept de référence.
t = [1,2,3]
prenom = ‘Alain’
s = struct(tab=t, prenom = ‘Alain’)
Le tableau t pointe vers l’objet tableau [1,2,3], qui est stocké quelque part en mémoire. Donc la variable t contient l’addresse de l’objet tableau, cest aussi une référence.
Dans la structure s, on réfère à tab le tableau t qui pointe vers le même objet.
Dans cette structure, tab ne stocke pas une copie du tableau [1,2,3], mais plutôt une référence à l’endroit où ce tableau est stocké en mémoire.
Il en va de même pour l’objet de de type chaine de caractères ‘Alain’, la variable name est une référence à l’objet chaîne de caractères ‘Alain’, elle pointe directement à ce dernier.
def f(a, b): a[0] = b
t = [11, 22]
s = struct(x=33, y=44)
f(t, s)
s.x = 55
Qu’imprime print(t[0].x)?
Ca imprime 55
def f(a, b): a[0] = b
t = [11, 22]
s = struct(x=33, y=44)
f(t, s)
s.x = 55
Qu’imprime print(t)? Pourquoi?
Ca imprime [struct(x=55, y=44), 22]
On a appelé la fonction f qui a modifiée le premier élément du tableau t, il a assigné cet élément à s, une référence à l’objet structure. Le tableau t est modifié globalement car t est passé en référence à la fonction f.
Que donne-t-on comme paramètres à des fonctions?
Lors d’un appel de fonction, ce sont des
références qui sont passées en paramètre et
retournées comme résultat.
Certaines valeurs comme les strings, les integers sont immuables. Donc même si on les passe en paramètres, si la fonction les change, ce sera des copies locales à la
fonction et les variables originales restent les mêmes.
Or, c’est différent pour les tableaux
Procédure qui renverse le contenu d’un tableau in-situ
def renverserTab(t):
for i in range(len(t)//2):
j = len(t) - 1 - i
temp = t[i]
t[i] = t[j]
t[j] = temp
tab = [11, 22, 33, 44]
renverserTab(tab)
print(tab) # imprime [44, 33, 22, 11]
ici, pourquoi est-ce que temp = t[i] n’est t-il pas modifié quand on modifie t[i]?
temp = t[i] : Lorsque cette ligne est exécutée, temp reçoit la valeur de t[i]. En Python, même si les entiers sont des objets, ils sont immuables. Cela signifie que lorsque vous faites temp = t[i], temp reçoit une référence à l’objet entier que t[i] référençait à ce moment-là. C’est donc une copie.
comment fait-on une copie d’un tableau?
tab.copy()
Comment ajoute-ton un élément x à la fin d’un tableau?
tab.append(x)