Python avancé
Dans cette page, tu découvriras quelques syntaxes avancées en python que nous utiliserons souvent en IA :
List comprehension
Structure basique
L’objectif des listes compréhension est de créer des listes en utilisant directement une boucle for pour dire quels éléments insérer dans cette liste
liste = [ nb for nb in range(5)]
Équivaut au code
liste = []
for nb in range (5):
liste.append(nb)
Try except : la gestion d’erreur
Structure basique
La structure try/except est un moyen d’ignorer des erreurs dans le code. C’est un peu comme une condition if/else sauf que dans le try on mets le code que l’on souhaite exécuter et dans except le code à effectuer si une erreur est rencontrée
try :
#Code à tester
except :
# Code à effectuer en cas d'erreur
Préciser l’exception rencontrée
Souvent on veut ignorer des erreurs connues et pas toutes les erreurs, car cela peut provoquer des comportements incontrôlables. Pour cela on précise l’exception rencontrée
try :
#Code à tester
except NomErreur:
# Code à effectuer en cas d'erreur
Lorsque ton code génére une erreur, la première information inscrite avant la description de l’erreur est le nom de l’erreur.
Par exemple dans l’image ci-contre :
- TypeError est le nom de l’erreur
- ‘>’ not supported between instances of ‘str’ and ‘int’ est la description de l’erreur
Exemples d’utilisation concrète :
L’un des usages intéressant est d’interrompre ou de passer certains éléments lors d’une boucle qui génère des problèmes pour ne garder que les éléments bien formatés.
Voici des exemples d’utilisation :
- Ouvrir toutes les images d’un dossier sauf celles qui plantent
- Arrêter une boucle quand on cherche à prendre les 5 éléments suivants mais qu’il n’y a plus assez d’éléments pour en récupérer 5
for index in range (len(liste)):
try :
y = liste[index + 5]
# S'il n'y a pas d’élément dans la liste on interromps la boucle
except IndexError:
print(index)# afficher l'index qui plante
break