Lab 1 #5 (Python)

Lab 1 #5 (Python)

par Félix Bergeron,
Nombre de réponses : 2

Bonjour,

Pour l'exercice #5 a) on nous demande de faire une fonction qui n'a qu'un seul argument mais qui dépend de 2 variables. Je me demande comment faire. On dirait que les directives interdisent quelque chose du genre :

def f(x, lambda): ...

Je ne voit pas comment je peux répondre autrement.

Merci.

En réponse à Félix Bergeron

Re: Lab 1 #5 (Python)

par Pierre-Yves Bouchet,
Bonjour,

on impose d'utiliser lambda comme une variable globale. Elle ne doit donc pas passer comme paramètre de vos fonctions.
Une variable globale est définie dans le script principal via la commande dédiée, ensuite on peut supposer qu'elle est définie lorsqu'on écrit les fonctions. Lorsqu'on exécutera une fonction exploitant lambda, elle tournera en utilisant la valeur courante de lambda dans le script principal.
L'exemple ci-dessous (écrit en Python) vous montrera comment les utiliser.

> global a
>
> def f(x):
>     return(x+a)
>
> print(f(0)) # Échoue car le "a" n'est pas encore défini
> Traceback (most recent call last):
> File "", line 1, in > File "", line 2, in f
> NameError: name 'a' is not defined
>
> a = 0
> print(f(0)) # Réussit, le "a" dans la fonction est le même que celui dans l'interpréteur car il est défini en global (il vaut 0)
> 0
>
> a = 2
> print(f(0)) # Réussit, le "a" est défini. Comme il a changé depuis l'appel précédent à f, la valeur renvoyée va changer
> 2