Séance 2: Fonctions et variables
Cours d’informatique de BCPST 1
Table des matières
1 Variables dans Python 2
2 Fonctions 5
2.1 Syntaxe ............................................. 5
2.2 Une première fonction .................................... 6
2.3 La commande return ..................................... 6
2.4 Des fonctions avec plusieurs arguments .......................... 6
2.5 Des fonctions avec plusieurs sorties .............................. 7
2.6 Une fonction comme argument ................................ 7
2.7 Notion d’argument optionnel ................................. 7
2.8 Achage des variables intermédiaires ........................... 8
2.9 Ajout de documentation ................................... 8
3 Portée des variables 9
3.1 Notions de variables locales et globales ........................... 9
3.2 Commandes global et locals ................................. 10
4 Exercices 10
Séance 2: Fonctions et variables
1. Variables dans Python
Lors de la première séance, les commandes envoyées à Python étaient des expressions à évaluer,
Python répondait à nos demandes et, une fois la réponse donnée, celle-ci était immédiatement oubliée.
Pour pouvoir conserver en mémoire un résultat et le réutiliser, nous allons voir la notion de variable.
Pour créer une variable, il faut attribuer un nom à cette variable et lui aecter une valeur à l’aide de
l’opérateur d’aectation =. Le nom de la variable est une suite de lettres (minuscules ou majuscules)
et de chires, qui doit toujours commencer par une lettre. Une variable peut s’appeler par exemple
a
,
a1
,
toto
... Il est d’usage de choisir des termes explicites pour faciliter la lecture du code. Une fois
aectée, la valeur de la variable peut être utilisée dans un calcul en faisant référence à son nom.
Toute instruction d’aectation doit s’écrire :
variable = expression.
Lexpression est évaluée, et si elle a un sens, la valeur retournée est stockée dans la variable et Python
ne renvoie rien.
L’instruction a= 2 sera donc traduite par l’interpréteur en :
demande au noyau le droit d’utiliser une partie de la RAM (la taille d’un entier) et note sa
place
stocke l’entier 2 dans ce bloc qui est donc converti en binaire.
Désormais, l’interpréteur remplacera la lettre
a
par le contenu de ce bloc mémoire. Plus tard, on
pourra changer la valeur de a, en écrivant a= 3 ou bien a=a+ 5.
Taper les opérations suivantes dans l’interprète de commande.
largeur = 12
longueur = 42
aire = longueur *largeur
print ("L'aire du rectangle est égale à", aire)
On note au passage qu’une aectation ne retourne aucun résultat. Pour voir la valeur de la variable, il
sut d’écrire le nom de cette variable dans la console et de valider :
largeur
aire
Dans l’explorateur de variables (
WORKSPACE
TOOLS/WORKSPACE), on peut visualiser à
tout moment la table de référencement des diérentes variables actives lors de votre session de travail.
Taper les opérations suivantes dans l’interprète de commande.
largeur = 20
largeur
aire # inchangée (pas de ré troaction )
On voit alors la modification de la valeur dans l’explorateur de variables et on remarque que la valeur
de la variable
aire
na pas été modifiée. Le calcul
aire = longueur *largeur
qu’on a eectué
utilise les valeurs des variables au moment où il a été exécuté et nétablit en aucune manière une
liaison particulière entre les variables elles-mêmes.
Lycée Pierre-Gilles de Gennes/ ENCPB 2016-2017 page 2
Séance 2: Fonctions et variables
Une variable déjà aectée peut être réaectée par une donnée quelconque, d’un autre type éven-
tuellement. Lancienne valeur de la variable est alors oubliée. On peut même écraser (mais c’est très
dangereux) les valeurs classiques que sont eou π.
Taper les opérations suivantes dans l’interprète de commande.
4=w
w=4 # Le nom de la variable doit se trouver à gauche de l'égalité.
w+1
w==5
w==4
x
w=x
x=w+7
x
a=[x,w]
2w
2*w
2*a
Il est possible, en se plaçant dans l’explorateur de variables, de supprimer une variable devenue
inutile. On peut aussi utiliser la commande
del
comme le montre le prochain exemple. On va voir
aussi qu’on peut créer simultanément plusieurs variables.
(Adriane ,Thierry) = ("Top"," Formidable ")
Thierry
x=y=z=0
x
y, z
del(Thierry)
Thierry
id('Adriane')# id donne l'adresse mémoire où se trouve la variable .
id(x)
Il y a quelques règles à respecter dans la dénomination des variables :
le nom de variables doit commencer par une lettre (on peut utiliser a2, mais pas 2a) ;
on peut utiliser un chire ou un _, mais ni espace, ni accents, ni point ;
Lycée Pierre-Gilles de Gennes/ ENCPB 2016-2017 page 3
Séance 2: Fonctions et variables
on ne peut pas non plus écrire du x(t) ou du f(x) ;
On verra dans la suite comment définir une fonction en Python.
il y a des noms réservés :
and
,
as
,
assert
,
break
,
class
,
continue
,
def
,
del
,
elif
,
else
,
except
,
False
,
finally
,
for
,
from
,
global
,
if
,
import
,
in
,
is
,
lambda
,
None
,
nonlocal
,
not
,
or,pass,raise,return,True,try,while,with,yield.
Pour vous en convaincre, taper les opérations suivantes dans l’interprète de commande.
x(t)=5
if=3
xé=5 # Fonctionne avec Pyzo mais éviter les accents
Le signe = ne signifie pas qu’il y a identité entre les deux membres. Il signifie que le résultat du second
membre (de droite) est stocké à une adresse référencée par la variable du premier membre. Ainsi, le
premier membre (à gauche) est toujours réduit à un identificateur de variable.
Pour l’illustrer, taper les opérations suivantes dans l’interprète de commande.
a=2
a=a+1
a
a==a+1
L’instruction
a=a+1
nest pas une égalité mathématique, elle signifie que la variable
a
va prendre la
valeur de
a
à laquelle on a ajouté 1. La commande
a=a+1
est si classique dans les boucles (que l’on
verra lors des prochaines séances) qu’une écriture simplifiée existe :
a+= 1
a
b=12
b+=10
b
a+=-2
a
a+=a
a
Dernière chose à noter : on peut faire plusieurs aectations en même temps. On pourra, si on veut
aecter a,bet c, écrire l’instruction suivante :
[a, b, c]= L,
Lest une liste déjà définie.
Lycée Pierre-Gilles de Gennes/ ENCPB 2016-2017 page 4
1 / 11 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!