all:bibles:langages:python:structure
Table des matières
Structures de contrôle
Test
Instruction if
if condition: bloc de lignes else: bloc de lignes
Boucle
Instruction for..in
for variable in sequence: bloc de lignes else: bloc de lignes
Instruction while
- L’instruction while permet d’exécuter un bloc de lignes tant qu’une expression est vérifiée.
- Si l’expression n’est plus vraie l’instruction else est exécutée si celle-ci existe et la boucle s’arrête.
while condition: bloc de lignes else: bloc de lignes
Contrôle des itérations
| continue | interrompt l’execution de la boucle pour l’élément en cours et passe à l’élement suivant |
| break | interrompt l’execution de la boucle et n’exécute pas l’instruction else |
Les list comprehensions
Les lists comprehensions donnent un moyen concis d’appliquer une fonction sur chaque élément d’une liste afin d’en produire une nouvelle.
>>> nombres = [1,3,8,9,7,32,89,42] >>> # retourner sous forme de liste chacun des nombres au carré >>> [nombre*nombre for nombre in nombres] [1, 9, 64, 81, 49, 1024, 7921, 1764] >>> nombres = [1,3,8,9,7,32,89,42] >>> # retourner sous forme de liste les nombres pairs >>> [nombre for nombre in nombres if nombre%2==0] [8, 32, 42]
Les dict comprehensions
Les dict comprehensions donnent un moyen concis de créer un dictionnaire à partir d’une itération.
>>> {x: x**2 for x in (2, 4, 6)} {2: 4, 4: 16, 6: 36}
Exceptions
try..except..else
Lorsqu’une exception est levée il est possible de la stopper en interceptant l’erreur.
try: bloc de code surveillé except: bloc de code exécuté si l'exception est levée
Il est fortement conseillé de spécifier l’exception afin de ne pas masquer silencieusement tous les types d’erreur qui pourrait intervenir.
try: bloc de code surveillé except Exception: bloc de code exécuté si l'exception est levée
Exemples d'exceptions
- AttributeError
- ImportError
- IndentationError
- IndexError
- KeyError
- MemoryError
- SyntaxError
- TypeError
- ZeroDivisionError
try..finally
try: bloc de code surveillé finally: code toujours exécuté (y compris si raise ou return dans le bloc surveillé).
Fonctions
- La définition d’une fonction se fait par le mot clé def suivi du nom de la fonction.
- Les éventuels paramètres sont déclarés entre parenthèses.
- Le caratère “:” délimite le début de la fonction.
- Le bloc de la fonction est délimité par les indentations.
Définition
def say_hello(firstname, lastname): print ("Hello {} {}".format(firstname.title(), lastname.title()))
Utilisation
say_hello('Terry', 'gilliam')
Paramètres
Paramètres explicites
- Les paramètres explicites sont séparés par une virgule et peuvent être enrichis d’une valeur par défaut, ils sont dans ce cas optionnels.
- Il est nécessaire de regrouper les paramètres optionnels à la fin de la liste des paramètres.
- Les paramètres peuvent être nommés sans respecter un ordre précis.
>>> def say_hello(firstname, gender='Mr', lastname=''): ... fullname = ' '.join([gender, firstname, lastname]) ... print("Hello {}".format(fullname)) >>> say_hello('Terry') Hello Mr Terry >>> say_hello('Yolande', 'Mme') Hello Mme Yolande >>> say_hello('Yolande', lastname='Moreau', gender='Mme') Hello Mme Yolande Moreau
Paramètres non explicites
- Les paramètres non explicites permettent de spécifier autant de valeurs que l’on souhaite sans qu’il soit nécessaire de les spécifier dans la signature de la fonction.
- Ils sont fournis sous la forme nom=valeur, et sont accessibles à l’intérieur de la fonction sous forme de dictionnaire.
- Les paramètres non explicites sont préfixés d’une double étoile.
>>> def show_actors(**actors): ... for actor, name in actors.items(): ... print("{}:{}" .format(actor, name)) >>> show_actors(actor1='Terry Gilliam', actor2='John Cleese') actor2:John Cleese actor1:Terry Gilliam
Paramètres arbitraires
- Les paramètres arbitraires fonctionnent de la même manière que les paramètres non explicites mais ne sont pas nommés.
- Il sont accessibles à l’intérieur de la fonction sous forme d’un tuple.
- Les paramètres arbitraires sont préfixés d’une étoile
>>> def ajoute_acteurs(*actors): ... liste = [] ... for actor in actors(): ... liste.append(actor) ... return liste >>> ajoute_cteurs('Terry Gilliam', 'John Cleese') ['John Cleese', 'Terry Gilliam']
Les 3 types de paramètres peuvent être utilisés dans une même fonction, dans ce cas leur ordre doit être le suivant:
def fonction(param1, param2=2, *arbitraires, **non-explicites):
def fonction(param1, param2=2, *arbitraires, **non-explicites):
Docstrings
Les docstrings sont des chaines de caractères placées au début du corps des fonctions. Ils sont associés à la variable doc de la fonction.
>>> def get_full_name(firstname, lastname): ... """Retourne le nom complet""" ... return ' '.join([firstname, lastname]) >>> get_full_name.__doc__ 'Retourne le nom complet'
all/bibles/langages/python/structure.txt · Dernière modification : de omeylhoc
