Aller au contenu

TD⚓︎

Exercice 1

Dans le programme suivant, quelle est la variable d'itération ? Qu'elle est sa valeur à la fin de la boucle ?

fin = 10
for cmpt in range(fin):
    print("Vive Python 3 !")

Exercice 2

Dans le programme suivant, quelle est la variable d'itération ? Quelle est sa valeur à la fin de la boucle ? Qu'affiche-t-il ?

N = 7
for nb_etoile in range(N):
    print("*" * nb_etoile)

Exercice 3

Écrire un programme de trois lignes qui affiche la table de multiplication par 7 :

1 * 7 = 7
2 * 7 = 14
...
10 * 7 = 70

Attention : La ligne 0 * 7 = 0 ne doit pas apparaitre, et vous ne devez pas utiliser de if!

Exercice 4

Écrivez un programme qui lit un entier positif n donné par l'utilisateur, puis n nombres entiers (toujours entrés par l'utilisateur) et compte et affiche en fin de programme combien parmi ces valeurs sont strictement positives, strictement négatives, nulles.

Exercice 5

Écrivez une fonction fact qui renvoie la factorielle d'un nombre.

Exemple:

>>> fact(5)

Exercice 6

Au cours précédent, nous avons écrit un programme permettant de calculer la moyenne d'un cours contenant deux contrôles continus et un examen.

Ajoutez des saisies contrôlées lors de la saisie des trois notes pour rendre le programme un peu plus robuste.

# La note finale est le maximum de la note d'examen
# et de la moyenne entre examen et moyenne de contrôle
# continu

note_cc1 = float(input('Note du premier contrôle : '))
note_cc2 = float(input('Note du second contrôle : '))
note_exam = float(input("Note de l'examen : "))

if note_cc1 < 0 or note_cc2 < 0 or note_exam < 0:
    print('Erreur de saisie (note négative).')
else:
    moyenne_cc = (note_cc1 + note_cc2) / 2

    if moyenne_cc < note_exam:
        note_finale = note_exam
        print('Note de contrôle non prise en compte.')
    else:
        note_finale = (moyenne_cc + note_exam) / 2
        print('Note de contrôle prise en compte.')
    print('Note finale :', note_finale)

    if note_finale < 10:
        print('Encore un petit effort !')
    elif note_finale < 12:
        print('Ça passe !')
    elif note_finale < 14:
        print('Pas mal !')
    else:  # Quelles valeurs possibles ?
        print('Bravo !')

Exercice 7

Écrivez un programme qui laisse l'utilisateur saisir autant de nombres positifs qu'il veut, tant que chaque nombre est strictement supérieur à celui d'avant. Si un nombre saisi ne vérifie pas la règle, le programme s'arrête et indique combien de nombres comporte la suite strictement croissante saisie par l'utilisateur.

Exercice 8

  1. Écrivez un programme qui permet à l'utilisateur de saisir autant de nombres entiers qu'il veut et calcule et affiche la moyenne de ces nombres. Quand il a terminé l'utilisateur écrit stop au lieu d'un nombre.

Remarque : Exceptionnellement, on ne fera pas de saisie contrôlée dans cet exercice.

  1. Modifiez le programme pour qu'il redemande chaque nombre saisi s'il n'est pas compris entre 0 et 20.

Exercice 9

On considère le programme suivant :

actuel = 1
avant = 1
while actuel < 1000:
    print(actuel)
    actuel, avant = actuel + avant, actuel
  1. Que réalise le programme ci-dessus ?
  2. Ce programme contient une boucle while. Est-ce un choix judicieux ? Si non, traduisez-le en un programme contenant une boucle for.

Exercice 10

Indiquez si vous utiliseriez plutôt une boucle whileou plutôt une boucle for ... in range(...) pour :

  1. écrire un programme demandant à l'utilisateur un mot de 5 lettres.
  2. écrire un programme dessinant la forme suivante :
        *      *
        *    *
        *  *
        **
    
  3. écrire un programme demandant à l'utilisateur un entier et déterminant combien de fois de suite cet entier est divisible par 2.

Exercice 11

Écrire un programme qui affiche toutes les tables de multiplication de 1 à 10.