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
