Table des matières

Exercices p-uplets et tableaux

Exercice 1

t = 5, 12, 4, 9, 31

Que retournent les expressions suivantes ? Vous pouvez les tester en console.

>>> len(t)
>>> type(t)
>>> t[0]
>>> t[-1]
>>> t[3]
>>> t[3:]
>>> t[:3]
>>> t[:2] + t[3:]
>>> t[:]
>>> t[35]
>>> t[21:35]

Exercice 2

Que produit l'instruction a = 0,2 + 0,3 == 0,5

Exercice 3

  1. Que vaut a = ((1, 2, 3), (4, 5), (6, 7))[2]
  2. Que vaut a = ((1, 2, 3), (4, 5), (6, 7))[2][1]
  3. Si tableau = [[4, 19, 7], [8, 6, 47], [5, 17, 11]] que renvoient les commandes :
    1. tableau[2]
    2. tableau[2][1]
    3. tableau[1][2]

Exercice 4

Que produit le code suivant :

x = 3
y = 7
x, y = y, x
print(x)
print(y)

Exercice 5

Que produit le code suivant :

x = 45
y = 7
x, y = min(x, y), max(x, y)
print(x)
print(y)

Exercice 6

Que va afficher ce programme ?

for item in [7, 1, 15, -3]:
    c = item**2
    print(c)
print("foo")

Exercice 7

Faites l'exercice en complétant le fichier suivant.

# milieu.py

def milieu(A,B):
    '''
    A: coordonnées du point A
    B: coordonnées du point B
    renvoie les coordonnées de M, milieu de [AB]
    '''
    # à compléter

# zone de test
if __name__ == '__main__':
    # milieu de [AB] avec A(0;0) et B(0;0) est M(0;0)
    assert milieu((0,0), (0,0)) == (0.0,0.0)

    # milieu de [AB] avec A(0;0) et B(0;10) est M(0;5)
    assert milieu((0,0), (0,10)) == (0.0,5.0)

    # milieu de [AB] avec A(11;3) et B(8;15) est M(9.5;9)
    assert milieu((11,3), (8,15)) == (9.5,9.0)

    # milieu de [AB] avec A(-4;7) et B(5;23) est M(0.5;15)
    assert milieu((-4,7), (5,23)) == (0.5,15.0)

Complétez la fonction et exécutez pour vérifier le bon fonctionnement.

Exercice 8

Écrire une fonction somme(tableau) qui calcule la somme des élément d'un tableau.
Par exemple, somme([4, 8, 1]) doit retourner 13.

Exercice 9

On se donne une liste de température.

On vous demande d'écrire les fonctions suivantes :

Pour vous aider, voici des exemples de liste pour lesquelles vos fonctions doivent fonctionner.

Dans les cas, où la réponse est indéfinie, retourner None.

Écrire votre programme dans un fichier temperatures.py.

Ajoutez en fin de fichier, pour les tests :

# tests
if __name__ == '__main__':
    l1 = [18, 22, 14, 10, 23, 31, 35, 32, 22, 18, 2, -1, -5, 3]
    l2 = [9, 17, 10, 31, 32, 35, -2, 18, 0, 8, 2, 1, -4, 3, 23]
    l3 = [12, 12, 12]
    l4 = [-7, -6, -8, -2]
    l5 = []
    
    # tests de temperature_max
    assert temperature_max(l1) == 35
    assert temperature_max(l2) == 35
    assert temperature_max(l3) == 12
    assert temperature_max(l4) == -2
    assert temperature_max(l5) == None
    
    # tests de temperature_min
    assert temperature_min(l1) == -5
    assert temperature_min(l2) == -4
    assert temperature_min(l3) == 12
    assert temperature_min(l4) == -8
    assert temperature_min(l5) == None 
    
    # tests de temperature_min_pos
    assert temperature_min_pos(l1) == 2
    assert temperature_min_pos(l2) == 0
    assert temperature_min_pos(l3) == 12
    assert temperature_min_pos(l4) == None
    assert temperature_min_pos(l5) == None    
    
    # tests de temperature_moyenne
    assert temperature_moyenne(l1) == 16.0
    assert temperature_moyenne(l2) == 12.2
    assert temperature_moyenne(l3) == 12.0
    assert temperature_moyenne(l4) == -5.75
    assert temperature_moyenne(l5) == None

Exercice 10

Soit la fonction d'expression $f(x) = 3x^2+6x+1$

Écrire le programme permettant d'afficher le tableau de valeurs de $f$ pour les valeurs de $x$ allant de 0 à 20.

On veut une écriture de forme 0 → 1 [exprime que $f(0)=1$]