Cette instruction permet d'intercepter une erreur, plutot que d'arrêter le programme.
Voyons cela sur un exemple:
try:
a= int(input("Entrer un entier a :"))
print("valeur =",a)
except ValueError:
print("Oups, a n'est pas un entier")
Saisissez et faites fonctionner ce programme avec une valeur entière, puis avec une valeur non entière.
Nous allons rendre un programme plus convivial.
Nous allons redemander à l'utilisateur de réaliser à nouveau la saisie si celle-ci est incorrecte.
Pour cela, il faut programmer une boucle.
ok=False
while not ok:
try:
a= int(input("Entrer un entier : "))
ok=True
except ValueError:
print("Erreur de saisie ! Entrer un entier")
print("valeur =",a)
Vous allez reprendre votre tout premier programme, et vous allez gérer les problèmes de saisie.
from turtle import*
###section des fonctions
def polygone(nb_cotes,cote):
"""Cette fonction permet de dessiner un polygone. Le premier paramètre correspond au nombre de cotés,
le second à la longueur d'un coté"""
angle=360/nb_cotes #la variable angle est calculer et est égale à un angle du polygone.
clear() #Cette instruction permet d'effacer la fenêtre de dessin.
for i in range(nb_cotes): #Nous utilisons une boucle pour construire chaque cotés.
forward(cote) #Cette instruction permet de dessiner un segment de longueur cote en avançant.
right(angle) #Cette instruction permet d'effectuer une rotation pour positionner le crayon correctement.
###section main (c'est le programme principal)
#Le int converti la chaine de caractère en entier
NB_C=int(input("Nombre de cotés (un diviseur de 360°)")) #Nous demandons à l'utilisateur d'entrer un diviseur de 360
C=int(input("Longueur du coté en pixels")) #Nous demandons à l'utilisateur d'entrer une longueur
polygone(NB_C,C) #Nous appelons la fonction polygone avec les valeurs NB_C et C.
Le résulat doit ressembler à cela:
from turtle import*
###section des fonctions
def polygone(nb_cotes,cote):
"""Cette fonction permet de dessiner un polygone. Le premier paramètre correspond au nombre de cotés,
le second à la longueur d'un coté"""
angle=360/nb_cotes #la variable angle est calculer et est égale à un angle du polygone.
clear() #Cette instruction permet d'effacer la fenêtre de dessin.
for i in range(nb_cotes): #Nous utilisons une boucle pour construire chaque cotés.
forward(cote) #Cette instruction permet de dessiner un segment de longueur cote en avançant.
right(angle) #Cette instruction permet d'effectuer une rotation pour positionner le crayon correctement.
###section main (c'est le programme principal)
ok=False
while not ok:
try:
NB_C=int(input("Nombre de cotés (un diviseur de 360°)"))
if 360//NB_C==360/NB_C:
ok=True
except ValueError:
print("Erreur de saisie ! Entrer un entier diviseur de 360")
ok=False
while not ok:
try:
C=int(input("Longueur du coté en pixels"))
ok=True
except ValueError:
print("Erreur de saisie ! Entrer un entier")
polygone(NB_C,C)