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