Scope & arguments · Portée & arguments
Local variables
- A variable made inside a function is local.
- It only exists while the function runs.
- Code outside the function cannot see it.
Variables locales
- Une variable créée dans une fonction est locale.
- Elle n'existe que pendant que la fonction s'exécute.
- Le code en dehors de la fonction ne peut pas la voir.
def make_message():
note = "secret"
print(note)
make_message()
# print(note) would be an error: note is local
Global variables
- A variable made outside all functions is global.
- A function can read a global value.
- To change a global inside a function you need the
globalkeyword — but it is usually cleaner toreturna value instead.
Variables globales
- Une variable créée en dehors de toutes les fonctions est globale.
- Une fonction peut lire une valeur globale.
- Pour modifier une globale dans une fonction, vous avez besoin du mot-clé
global— mais il est généralement plus propre dereturnune valeur au lieu de cela.
Default values
- A parameter can have a default value:
def f(x, step=1):. - If the caller leaves it out, the default is used.
- Parameters with defaults come after the normal ones.
Valeurs par défaut
- Un paramètre peut avoir une valeur par défaut :
def f(x, step=1):. - Si l'appelant l'omet, la valeur par défaut est utilisée.
- Les paramètres avec des valeurs par défaut viennent après les autres.
def power(base, exp=2):
return base ** exp
print(power(5))
print(power(2, 3))
How arguments are passed
- Python passes a reference to the object you give it.
- Numbers and strings are immutable: a function cannot change the caller's value.
- Lists are mutable: changes made inside a function do affect the caller's list.
Comment les arguments sont passés
- Python passe une référence à l'objet que vous lui donnez.
- Les nombres et les chaînes sont immuables : une fonction ne peut pas changer la valeur de l'appelant.
- Les listes sont mutables : les modifications faites dans une fonction affectent bien la liste de l'appelant.
def try_change(n):
n = n + 100 # changes only the local copy
print(n)
x = 5
try_change(x)
print(x) # x is still 5
In Cambridge pseudocode (A-Level 9618)
BYVALpasses a copy (caller unchanged);BYREFshares the same data (caller changed).- ⚠️ These two keywords are A-Level 9618 only. IGCSE 0478 passes every parameter by value; to send a result back you use a
FUNCTIONandRETURNit.
En pseudocode Cambridge (A-Level 9618)
BYVALpasse une copie (l'appelant inchangé) ;BYREFpartage les mêmes données (l'appelant changé).- ⚠️ Ces deux mots-clés sont uniquement A-Level 9618. IGCSE 0478 passe chaque paramètre par valeur ; pour renvoyer un résultat, vous utilisez un
FUNCTIONet leRETURN.
PROCEDURE Increase(BYREF N : INTEGER)
N ← N + 1
ENDPROCEDURE
PROCEDURE Show(BYVAL N : INTEGER)
OUTPUT N
ENDPROCEDURE
Common mistakes
- A variable made inside a function is local — it cannot be seen outside.
- Arguments fill the parameters in the order you write them.
- To use a result outside,
returnit and store what comes back.
Erreurs courantes
- Une variable créée dans une fonction est locale — elle ne peut pas être vue en dehors.
- Les arguments remplissent les paramètres dans l'ordre où vous les écrivez.
- Pour utiliser un résultat en dehors,
return-le et stockez ce qui revient.
Now you try
- The checks call your function with different arguments.
- Press Check answer to test your code.
À vous maintenant
- Les vérifications appellent votre fonction avec différents arguments.
- Appuyez sur Vérifier la réponse pour tester votre code.
Arguments live in the call · Les arguments vivent dans l'appel
Each call gets its own copy of the arguments — they vanish when it returns. · Chaque appel obtient sa propre copie des arguments — ils disparaissent lorsqu'il retourne.
Write greet(name, greeting="Hi") that returns · rendements greeting, then , , then name, then !. So greet("Sam") is Hi, Sam! and · et greet("Sam", "Hello") is Hello, Sam!. · Écrivez greet(name, greeting="Hi") qui retourne greeting, puis , , puis name, puis !. Donc greet("Sam") est Hi, Sam! et greet("Sam", "Hello") est Hello, Sam!.
Click Run to see the output here. · Cliquez sur Exécuter pour voir le résultat ici.
Write add_item(lst, x) that appends x to the list lst. Do not · non return anything — the caller's list should change because lists are mutable. · Écrivez add_item(lst, x) qui ajoute x à la liste lst. Ne retournez rien — la liste de l'appelant doit changer car les listes sont mutables.
Click Run to see the output here. · Cliquez sur Exécuter pour voir le résultat ici.
Write between(low, high, x) that returns · rendements True if · si x is from low to · à high (inclusive), otherwise False. · Écrivez between(low, high, x) qui renvoie True si x est compris entre low et high (inclus), sinon False.
Click Run to see the output here. · Cliquez sur Exécuter pour voir le résultat ici.
Write make_countdown(start, stop=1) that returns · rendements a list counting down from start to · à stop. So make_countdown(3) is [3, 2, 1] and · et make_countdown(5, 3) is [5, 4, 3]. · Écrivez make_countdown(start, stop=1) qui renvoie une liste comptant vers le bas de start à stop. Ainsi make_countdown(3) est [3, 2, 1] et make_countdown(5, 3) est [5, 4, 3].
Click Run to see the output here. · Cliquez sur Exécuter pour voir le résultat ici.