Instruction conditionnelle

Objectifs :

À la fin de cette séquence vous serez capable de :

  • Générer un nombre aléatoire à l'aide des fonctions random() et randint()
  • Manipuler les instructions if, elif et else
  • Commenter un programme
  • Écrire un petit algorithme qui répond à un problème donné
  • Écrire un algorithme en pseudo-code
  • Spécifier (décrire) un programme

Un mini-projet


Dans ce jeu, le programme génère un nombre aléatoire mais ce nombre n'est pas visible par le joueur.
Le joueur doit le deviner en une seule tentative.

  • Si le joueur entre le même nombre que celui généré par le système, le programme affiche le message gagnant et le jeu s'arrête là.
  • Si le joueur entre un mauvais nombre, ce numéro est évalué.
    • Si le nombre est supérieur à la bonne réponse, le système donne un indice indiquant que le nombre saisi est «élevé»,
    • sinon, si le nombre est inférieur à la bonne réponse, il indique «inférieur».

Cours

1. Générér un nombre aléatoire

In [ ]:
import random
In [ ]:
# Générer de manière aléatoire un nombre réel entre 0 et 1 (exclu)
alea = random.random()
print(alea)

Écrire une expression qui génère un nombre réel compris entre 3 et 4.

In [ ]:
 
In [ ]:
# Générer au hasard un entier naturel compris entre 1 et 6
de = random.randint(1, 6)
In [ ]:
de
In [ ]:
#Simuler le lancer de deux dés
de1 = random.randint(1, 6)
de2 = random.randint(1, 6)
print(f"Vous avez joué {de1} et {de2} pour un total de {de1 + de2}")
In [ ]:
#somme de deux dés
de1 = random.randrange(1, 7)#la borne supérieure (7) n'est pas considérée
de2 = random.randrange(1, 7)
print(f"Vous avez joué {de1} et {de2} pour un total de {de1 + de2}")

2. Découvrir et manipuler l'instruction if

In [ ]:
print("Bienvenue sur notre site.")
print("\nLa sécurité est notre devise !\n")
mot_pass = intput("Saisir votre mot de passe :")
if mot_pass = "nsi2024":
    print("connexion réussie.")

Syntaxe

In [ ]:
if test :
    <expression n°1>
    ...
    <expression n°n>
<instruction après le Si>

#Après les deux points il y a une indentation (décalage)
#expressions n°... constituent un block de code indenté par rapport à la ligne précédente. On l'appelle le corps du if
In [ ]:
print("Bienvenue sur le site du LDJ.")
print("\nOn gagne à tous les coups !\n")
mot_pass = intput("Saisir votre mot de passe :")
if mot_pass = 'nsi':
    print("connexion réussie.")
    print("Attention, les jeux d'argent sont interdits aux mineurs !")

La clause else

L'inconvénient du code précédent, c'est que l'on ne sait pas explicitement ce qu'il advient si le mot de passe n'est pas correct !

In [ ]:
print("Bienvenue sur le site du LDJ.")
print("\nOn gagne à tous les coups !\n")
mot_pass = intput("Saisir votre mot de passe :")
if mot_pass = 'nsi':
    print("connexion réussie.")
    print("Attention, les jeux d'argent sont interdits aux mineurs !")
else:
    print("mot de passe incorrect !")

Organigramme

La clause elif

In [1]:
#Afficher votre humeur du jour sur écran d'un ordinateur

print("Je sens votre tempérament. Votre humeur actuel sur mon écran.\n")
print("Choisissez un entier entre 1 et 3 et j'afficherai votre humeur")

'''
'''
choix = int(input("Saisir un entier entre 1 et 3"))
print("\nVous êtes...")
if choix == 1:
    #Vous êtes joyeux
    print("\U0001f600")
elif choix == 2:
    #Voue êtes ni gai ni triste
    print("\U0001F611")
elif choix == 3:
    #Vous êtes triste
    print("\U0001F612")
else:
    print("d'une humeur indescriptible ! (Vous devez rapidement consulter un psy.)")
Je sens votre tempérament. Votre humeur actuel sur mon écran.

Choisissez un entier entre 1 et 3 et j'afficherai votre humeur
Vous êtes...
😀

if imbriqués

Organigramme

Opérateurs de comparaison

Opérateurs Signification Exemples Valeur de vérité
== égalité 3 == 7 False
!= différent 3 != 7 True
< plus petit que 3 < 7 True
≤ plus petit ou égal à 3 ≤ 7 True
> plus grand que 3 > 7 False
≥ plus grand ou égal à 3 ≥ 7 False

L'algorithme de notre jeu

"""
Cet algorithme génère un nombre aléatoire compris entre 1 et 100.
ce nombre doit être deviner par l'utilisateur en une seule tentative.
"""

  • Afficher : « Bienvenue sur le jeu : Deviner mon nombre ! »
  • Afficher : « Je pense à un nombre entier compris entre 1 et 100. »
  • Afficher : « Essayez de deviner ce nombre. »
  • Choisir un nombre à deviner entre 1 et 100.
  • Demander au joueur de proposer un nombre :
    • Si la proposition est plus petite que le nombre à deviner, afficher : « proposition plus petite. »
    • Si la proposition du joueur est supérieure au nombre à deviner, afficher : « proposition plus grande. »
    • Sinon, Féliciter le joueur pour avoir deviné le bon nombre.

Le pseudo-code du jeu

Afficher : « Bienvenue sur le jeu : Deviner mon nombre ! »

Afficher : « Je pense à un nombre entier compris entre 1 et 100. »

Afficher : « Essayez de deviner ce nombre. »

nbre_secret ← un entier choisi au hasard entre 1 et 100

essai ← proposition du joueur

Si essai < nbre_secret, Alors

Afficher : « proposition plus petite. »

Si essai > nbre_secret, Alors

Afficher : « proposition plus grande. »

Sinon

Afficher : « Bravo, vous avez deviné mon nombre ! »

FinSi

Traduire ce pseudo-code en Python.

In [ ]:
 

Faites-vous plaisir 1

Écrire un programme qui lit en entrée deux nombres entiers strictement positifs, et qui vérifie qu’aucun des deux n’est un diviseur de l’autre.
Si tel est bien le cas, le programme affiche True. Sinon, il affiche False.

test 1 :
Avec les entrées suivantes : \(6\) et \(42\), le résultat à afficher vaudra " False ".

test 2 :
Avec les entrées suivantes : \(5\) et \(42\), le résultat à afficher vaudra " True ".

Faites-vous plaisir 2

  1. Écrire un algorithme qui permet de résoudre une équation du premier degré :
    \(ax + b = c\), \(a\), \(b\) et \(c\) étant des nombres réels.
  2. Écrire cet algorithme sous la forme d'un pseudo-code
  3. Implémenter cet algorithme dans le langage Python.

Faites-vous plaisir 3

  1. Écrire un algorithme, sous la forme d'un organigramme, qui permette de résoudre une équation du second degré :
    \(ax^2 + bx + c = 0\) avec \(a ≠ 0\)
  2. Implémenter cet algorithme dans le langage Python.