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
Retour en haut