Exo Python

Identification

Infoforall

10 - Exercices Expressions


A rendre en version papier ou numérique.

1 - Expressions numériques

✎ 01° Expliquer étape par étape comment l'interpréteur Python va évaluer cette expression.

1
a = 4 * 3 ** 2 + 8 // 2

✎ 02° Expliquer étape par étape comment l'interpréteur Python va évaluer cette expression.

1
a = 20 + 10 // 2 + 8 * 100

✎ 03° Expliquer pourquoi ce programme affiche les nombres 100 et 500.

1 2 3 4 5 6 7 8
somme = 0 v = 10 somme = somme + v**2 print(somme) v = 20 somme = somme + v**2 print(somme)

✎ 04° Expliquer pourquoi ce programme affiche les deux variables a et b contiennent respectivement 12 et 6 une fois le programme exécuté.

1 2
a = 126 // 10 b = 126 % 10

2 - Instructions conditionnelles

✎ 05° Sur quelles lignes trouve-t-on des déclarations de fonctions ? Sur quelles lignes trouve-t-on des appels de fonctions ?

1 2 3 4 5 6 7 8 9 10 11 12 13
def chiffre_unite(n): return 0 def chiffre_dizaine(n): return 0 def chiffre_centaine(n): return 0 valeur = 1875 print(chiffre_unite(valeur)) print(chiffre_dizaine(valeur)) print(chiffre_centaine(valeur))

✎ 06° Lorsque la fonction chiffre_unite() reçoit 1875 en ligne 11, dans quelle variable de la fonction se retrouve stockée cette valeur ?

✎ 07° Compléter la fonction chiffre_unite() pour qu'elle fasse le travail demandé : renvoyer le CHIFFRE de l'unité du nombre reçu.

✎ 08° Compléter la fonction chiffre_dizaine() pour qu'elle fasse le travail demandé : renvoyer le CHIFFRE de la dizaine du nombre reçu.

✎ 09° Compléter la fonction chiffre_centaine() pour qu'elle fasse le travail demandé : renvoyer le CHIFFRE de la centaine du nombre reçu.

3 - Si et dictionnaire

✎ 10° Expliquer l'affichage obtenu.

1 2 3 4 5 6 7
nb = 10 achat = 12 if nb - achat < 0: achat = nb nb = nb - achat print("Vous avez pu acheter ", achat, " objets") print("Il reste ", nb, " objets dans le stock")

✎ 11° Expliquer l'affichage obtenu avec ces nouvelles valeurs.

1 2 3 4 5 6 7
nb = 20 achat = 8 if nb - achat < 0: achat = nb nb = nb - achat print("Vous avez pu acheter ", achat, " objets") print("Il reste ", nb, " objets dans le stock")

✎ 12° Expliquer en français la signification de chacune de ces lignes.

1 2 3 4 5
stock = {"carottes": 20, "tomates": 6, "poivrons": 12, "oignons":0} stock["carottes"] = 10 print(stock["carottes"]) stock["tomates"] = stock["tomates"] + 10 print(stock["tomates"])

✎ 13° La fonction reduire_valeur_de_1() attend deux entrées. La première doit être un dictionnaire et la deuxième une clé de ce dictionnaire.

La fonction doit alors réduire de 1 la valeur associée à cette clé.

Questions :

  1. Donner l'ordre des lignes que va exécuter l'interpréteur Python (attention, la fonction ne réalise pas la bonne chose pour le moment)
  2. Lors de l'appel ligne 5, dans quelle variable va être mémorisé le stock envoyé ? Dans quelle variable va-être mémorisé le "tomates" envoyé ?
  3. Modifier les instructions de la fonction pour qu'elle fasse la bonne action.
1 2 3 4 5 6
def reduire_valeur_de_1(stock, cle): stock[cle] = 0 stock = {"carottes": 20, "tomates": 6, "poivrons": 12, "oignons":0} reduire_la_valeur_de_1(stock, "tomates") print(stock["tomates"])

✎ 14° Si ce n'est pas déjà fait, modifier une dernière fois la fonction : la valeur modifiée ne peut jamais aller en dessous de 0.

4 - Boucle

✎ 15° Ecrire les numéros de lignes que va suivre l'interpréteur Python.

1 2 3 4 5
s = 0 for k in range(10): s = s + k print("Pour l'instant, la valeur de s est ", s) print("La valeur finale de s est ", s)

✎ 16° Recopier et compléter les affirmations suivantes pour chaque tour que va réaliser l'interpréteur :

Avant le premier tour de boucle, s vaut 0

Lors du 1er tour, k vaut 0 et s passe à 0+0=0.

Lors du 2e tour, k vaut 1 et s passe à 0+1=1.

Lors du 3e tour, k vaut 2 et s passe à 1+2=3.

Lors du 4e tour, ...

...

✎ 17° Recopier et compléter les affirmations suivantes pour chaque tour que va réaliser l'interpréteur sur ce nouveau programme :

1 2 3 4 5 6 7
s = 0 k = 1 while s < 20: s = s + k ** 2 k = k + 1 print("Pour l'instant, la valeur de s est ", s) print("La valeur finale de s est ", s)

Avant le premier tour de boucle, s vaut 0 et k vaut 1

On fait un 1er tour car s est inférieure à 20.

Lors de ce tour, s passe à 0+1=1 et k à 1+1=2.

On fait un 2e tour car s est inférieure à 20.

Lors de ce tour, s passe à 1+4=5 et k à 2+1=3.

...

...

Le TANT QUE s'arrête car s n'est plus inférieure à 20.

FIN

Activité publiée le 15 09 2023
Dernière modification : 15 09 2023
Auteur : ows. h.