Tableaux Flashcards

1
Q

Quel est le type de donnée qui couvre les structure/enregistrement et les tableaux en Python?

A

C’est le type objet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Comment appelle-t-on les tableaux en python?

A

En python, les tableaux portent le nom de liste.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Que sont les enregistrements/structures?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

vehicule = struct(marque=’toyota’, annee=2020)

Comment accéder au champ/attribut “marque” de l’enregistrement “vehicule”?

A

vehicule.marque.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Une structure peut-elle contenir une/d’autre structures?

A

Oui, il est possible d’avoir des structures/enregistrements à l’intérieur d’autres structures/enregistrements.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Que représentent ‘prenom’ et ‘age’ ?

patient = struct(prenom=’Alain’, age=70)

A

‘Prenom’ ainsi que ‘age’ representent les champs de la structure “patient”. ‘Alain et ‘70’ sont les valeurs de ces champs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Quel est l’output de patient?
patient = struct(prenom=’Alain’, age=70)

A

O: struct(prenom=’Alain,’age=70)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Que fera ‘patient1.age=89’?

patient1 = struct(nom_complet = ‘Alain Desmarais’)

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Comment fait-on pour modifier la marque de veh par ‘Audi’ et l’année à 2023?

veh = struct(marque = ‘Toyota’, annee = 2020)

A

veh.marque = ‘Audi’
veh.annee = 2023

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Quel types de données peuvent contenir les structures?

A

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))

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Comment accéder à l’attribut matrix?
blabla = struct(matrix = [0,0,0,0], values = 4)

A

On accède au champ matrix avec ‘blabla.matrix’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Dessine le schéma de:
client = struct(nom=’Luc Roy’, naiss=struct(annee=1991, mois=2, quant=11), homme=True)

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Que représente l’index -1 dans un tableau?

A

Le dernier élément du tableau.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Que fait blabla.matrix[-1]?
structure:
blabla = struct(matrix = [0,4,1,2], values = 4)

A

O: 2

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Que fait lolalol[-1]?
lolalol = [489]

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Dans quel interval est situé l’index d’un tableau avec n éléments (de longueur n)?

A

-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.

17
Q

Sur quel concept est basée la représentation des structures et tableaux?

A

La représentation des structures ainsi que des tableaux est basée sur le concept de référence.

18
Q

t = [1,2,3]
prenom = ‘Alain’
s = struct(tab=t, name = prenom)

Selon ce modèle, expliquez le concept de référence.

A

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.

19
Q

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)?

A

Ca imprime 55

20
Q

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?

A

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.

21
Q

Que donne-t-on comme paramètres à des fonctions?

A

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

22
Q

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]?

A

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.

23
Q

comment fait-on une copie d’un tableau?

A

tab.copy()

24
Q

Comment ajoute-ton un élément x à la fin d’un tableau?

A

tab.append(x)

25
Q

Que fait tab.copy()?

A

il fait une copie d’un tableau qu’on lui donne.

26
Q

Comment insérer un élément à un index spécifique dans un tableau?

A

tab.insert(index, x)

27
Q

Que fait tab.pop()?

A

Il retire et retourne le dernier élement du tableau tab.

Important: Le tableau ne doit PAS être vide

28
Q

tab = [] tab.pop(), que ce passe-t-il?

A

Il y’aura une erreur, car le tableau est vide!

29
Q

Que fait tab.pop(index)

A

Fonction qui retire l’élément à l’index index du
tableau tab et le retourne (la longueur de tab sera
donc réduite de 1)

Important: Le tableau ne doit PAS etre vide

30
Q

Quell est la difference entre tab.remove(x) et tab.pop(index).

A

tab.remove(x) est une procédure qui retire le premier élément x trouvé dans le tableau tab passé en paramètre.
Contrairement à tab.remove(x) , tab.pop(index) est une fonction car elle retourne la valeur de l’élément retiré. tab.pop(index) ne prend pas un élément mais l’index d’un élément dans un tableau.

31
Q

Comment faire pour traiter seulement une partie d’un tableau?

A

Avec les tranches/slices qui utilisent la syntaxe:
tab[ d : f : p ].
d pour début, f pour fin et p pour pas.

32
Q

Que se passera t-il ici?
tab = [1,2,3,4,5,6]
print(tab[:-1:2])

A

[1,3,5] sera imprimé
debut = 0
fin = -1
pas = 2

comportement, on commence par deux.
deux: 1 Y
un: 2 N
deux: 3 Y
un: 4 N
deux: 5 Y
un: 6 N
O: 1,3,5

33
Q

tab = [1,2,3,4,5,6]
tab[:-1:] = [1,2,3,4,5,6,7,8]
print(tab)
Que sera le résultat de print(tab)? Pourquoi?

A

O: [1, 2, 3, 4, 5, 6, 7, 8, 6]

on affectera à tab allant de 0:-1 (donc du début à la fin) [1,2,3,4,5,6,7,8].
La fin tab[-1] = 6, n’est pas incluse. , donc les valeur de 1 à 5 seront remplacés par [1,2,3,4,5,6,7,8] laissant 6 à la fin.

34
Q

Lorsqu’on dessine un schéma d’un tableau, comment représenté les éléments/cellules du tableau?

A

par des index

35
Q

Que va imprimer : print(‘XY’.join([‘ab’,’cd’,’ef’]))

A

‘abXYcdXYef’

36
Q

Que fait ‘sep’.join.(tab)?

A

Retourne un texte formé de la concaténation des
textes dans le tableau tab séparés par le texte sep

37
Q

Que fait txt.split(sep)?

A

Retourne un tableau contenant les textes issus d’un
découpage de txt au séparateur sep (un texte). Il fait l’inverse de ‘sep’.join(tab).

Ex:
print(‘abXYcdXYef’.split(‘XY’) )
O: [‘ab’,’cd’,’ef’]

38
Q

Que fait txt.replace(mot, autre)?

A

Replace les mots qui match ‘mot’ dans txt par ‘autre’.
il retourne une copie du texte txt où chaque sous-texte mot a été remplacé par ‘autre’.

RIen n’est affiché sur le shell interactif.

39
Q

Que fait m = [[1, 2, 3]] * 3? Qu’est ce qui est important à savoir ici?

A

Toutes les sous-listes dans m sont en réalité des références à la même liste en mémoire. En d’autres termes, m contient trois références à une seule et même liste [1, 2, 3].