Il existe en python un format de données particulier, que l'on ne retrouve pas obligatoirement dans d'autres langages : les tuples ou p-uplets.
Ce sont des groupes de données ordonnées comme les listes. La principale différence est que les tuples ne peuvent pas être modifiés.
Un tuple se crée avec des parenthèses :
mon_tuple = (1, 'a')
type(mon_tuple)
On peut aussi ne pas utiliser les parenthèses :
autre_tuple = 2.8 , 'e'
type(autre_tuple)
Comme pour les listes, on accède aux valeurs en précisant leur indice :
mon_tuple[0]
On peut facilement parcourir les valeurs :
for valeur in mon_tuple :
print(valeur)
Par contre on ne peut pas les modifier :
mon_tuple[0] = 5
Les utilisations sont nombreuses. Retenons quelques exemples :
morpion = {(1,1): 'O', (1,2): 'X', (1,3) : '_',
(2,1) : 'X', (2,2) : 'O', (2,3) : 'O',
(3,1) : 'X', (3,2) : 'X', (3,3) : 'O',}
morpion[2,1]
a = 'a'
b = 'b'
a,b = b,a
print('a =',a)
print('b =',b)
def solution(ligne1, ligne2) :
"""
résout un système de deux inconnues à deux solutions
ligne1 et ligne2 sont des listes donnant les coefficients du système. Pour aX + bY =c, on donne [a,b,c]
Renvoie un tuple avec les deux solutions
Bien que pratiques, ces formules seront vues en post-bac...
"""
a,b,c = ligne1[0], ligne1[1], ligne1[2]
d,e,f = ligne2[0], ligne2[1], ligne2[2]
det = a*e - d * b
if det == 0 :
return "Cas particuliers (aucune ou une infinité de solution)"
inverse = [e/det, -b/det, -d/det, a/det]
x = inverse[0] * c + inverse[1] * f
y = inverse[2] * c + inverse[3] * f
return x , y
Testons cette fonction pour le système dont les solutions sont $(x,y) = (4,2)$:
$$\left\{ \begin{array}{ll} 2x+3y = 14 \\ -x + 7y = 10 \end{array} \right. $$solution([2,3,14],[-1,7,10])