Exercices

Exercice 1

Ecrire un programme qui simule le lancer de 1000 dés et qui affiche la moyenne des résultats obtenus.

🐍 Script Python
from random import *

somme = 0
for i in range(1000):
     = randint(1,6)
    somme = somme + 
moyenne = somme / 1000
print("La moyenne des 1000 lancers est",moyenne)

Exercice 2

Ecrire un programme qui demande à l'utilisateur un entier a et un entier n et qui calcule \(a^n\) à l'aide d'une boucle for (on verra plus tard un algorithme plus rapide que celui-ci).
Remarque : il est interdit d'utiliser ** ici!

🐍 Script Python
a = int(input("Veuillez saisir la valeurs de a (la base) : "))
n = int(input("Veuillez saisir la valeur de n (l'exponsant) : "))
puissance = 1
for i in range(n):
    puissance = puissance * a
print(a,"puissance",n,"est égal à",puissance)

Exercice 3

Ecrire une fonction aire qui prend deux paramètres : la longueur d'un rectangle et sa largeur, et qui renvoie l'aire du rectangle correpondant.
Tester ensuite cette fonction en utilisant les deux assert() suivants.

🐍 Script Python
assert(aire(5,3) == 15)
assert(aire(1,2) == 2)
🐍 Script Python
def aire(longueur,largeur):
    return longueur * largeur

Exercice 4

Ecrire une fonction rectangle() qui prend trois paramètres : le nombre de lignes, le nombre de colonnes et un caractère à afficher.
Cette fonction devra afficher un rectangle . Par exemple l'appel rectangle(2,5,'A') devra afficher :
AAAAA
AAAAA
Tester ensuite votre fonction avec divers appels.

🐍 Script Python
rectangle(2,5,'A')   # appel en respectant l'ordre des paramètres
print()   # ligne vide séparatrice
rectangle(caractère = 'K',nbLignes = 3,nbColonnes = 10)  # appel sans respecter l'ordre des paramètres

Remarque : En Python, il est possible de ne pas respecter l'ordre des paramètres d'une fonction lors de son appel. Dans ce cas, il faut préciser le rôle des paramètres comme par exemple : rectangle( nbColonnes = 4, caractère = '+', nbLignes = 7)

🐍 Script Python
def rectangle(nbLignes,nbColonnes,caractère):
    for ligne in range(nbLignes):
        for colonne in range(nbColonnes):
            print(caractère,end="")
        print()

Exercice 5

Ecrire une fonction nbSecondes() qui prend trois paramètres : un nombre d'heures, un nombre de minutes et un nombre de secondes (par exemple (3,47,5) pour 3 heures 47 minutes 5 secondes) et qui renvoie le nombre total de secondes correspondant.
Indiquer la valeur 0 comme valeur par défaut pour le nombre d'heures, le nombre de minutes et le nombres de secondes.
Tester ensuite cette fonction avec zéro, un, deux et trois paramètres.

🐍 Script Python
def nbSecondes(heures = 0, minutes = 0, secondes = 0):
    return heures * 3600 + minutes * 60 + secondes

print(nbSecondes())
print(nbSecondes(2))
print(nbSecondes(0,30))
print(nbSecondes(1,30,12))       

Exercice 6

Ecrire une fonction bissextile(année) qui renvoie True si le paramètre correspond à une année bissextile et qui renvoie False sinon.
Votre fonction ne doit utiliser ni des conditions imbriquées ni else ni des opérateurs booléens. remarque : vous pouvez effectuer une recherche sur la façon de calculer une année bissextile.

🐍 Script Python
def bissextile(année):
    if année % 400 == 0:
        return True
    if année % 100 == 0:
        return False
    if année % 4 == 0:
        return True
    return False

print(bissextile(2021))
print(bissextile(2020))
print(bissextile(2000))
print(bissextile(1900))

Dessiner avec Turtle

La bibliothèque turtle permet de dessiner à l'écran.
Le petit programme commenté ci-dessous permet d'obtenir un tracé intéressant :

🐍 Script Python
from turtle import *      # On importe la bibliothèque turtle

speed(10)                 # On règle la vitesse du tracé (un entier compris entre 1 et 10)
color('red', 'yellow')    # On fixe la couleur du tracé à 'rouge' et la couleur de rempissage à 'jaune'
begin_fill()
for i in range(36):
    forward(200)          # La tortue avance de 200 pixels 
    left(170)             # La tortue tourne vers la gauche de 170°
end_fill()
done()                    # Il faut terminer par done() pour lancer l'exécution du tracé    

Voici quelques fonctionnalités de turtle :

FonctionDescription
forward(x)Déplace la tortue de x pixels en marche avant.
backward(x)Déplace la tortue de x pixels en marche arrière.
left(x)Fait pivoter la tortue d'un angle de x degrés vers la gauche.
right(x)Fait pivoter la tortue d'un angle de x degrés vers la droite.
goto(x,y)Déplace la tortue au point de corrdonnées (x,y). Attention, l'axe des y est orienté vers le haut de l'écran comme en mathématiques!
penup()Lève le crayon (la tortue arrêtera de tracer).
pendown()Abaisse le crayon. La tortue se remettra à tracer.
hideturtle()Cache la tortue.
showturtle()Fait réapparaitre la tortue.
speed(n)Règle la vitesse du tracé. n est un entier compris entre 0 et 10. 1 correspond à une vitesse lente, 10 correspond à une vitesse rapide. 0 permet d'obtenir un tracé instantané.
done()Lance l'exécution du tracé.
circle(r)Trace un cercle de rayon r.
On peut ajouter une deuxième paramètre facultatif a si on souhaite tracer seulement tracer un arc de cercle d'angle a.
color(couleur1,couleur2)Définir la couleur du tracé (couleur1) et la couleur de remplissage (couleur2).
width(n)Règle l'épaisseur du trait à n pixels.

Exercice 7

Ecrire un programme qui utilise une boucle for pour tracer un carré de côté 100 pixels, avec un contour bleu et colorié en vert.

🐍 Script Python
from turtle import *

color('blue', 'green') 
begin_fill()
for i in range(4):
    forward(100)
    left(90)
end_fill()
done()

Exercice 8

Ecrire un programme qui trace 10 cercles dont les rayons sont 10, 20, 30, ..., 100.
Choisir une couleur de tracé et une couleur de remplissage.

🐍 Script Python
from turtle import *

color('red', 'pink') 
speed(10)
begin_fill()
for i in range(1,11):
    circle(10*i)    
end_fill()
done()

Exercice 9

Dessiner le drapeau de la France avec Turtle.

🐍 Script Python
from turtle import *

color('black', 'blue') 
begin_fill()
for i in range(2):
    forward(100)
    left(90)
    forward(200)
    left(90)
end_fill()
forward(100)

color('black', 'white') 
begin_fill()
for i in range(2):
    forward(100)
    left(90)
    forward(200)
    left(90)
end_fill()
forward(100)

color('black', 'red') 
begin_fill()
for i in range(2):
    forward(100)
    left(90)
    forward(200)
    left(90)
end_fill()
forward(100)

done()