Combinaison de paramètres en Python

Il est possible de passer à la fois des paramètres nommés et positionnels à une même fonction. Cela se fait à l'aide du symbole *, qui indique que les paramètres spécifiés à sa droite doivent être considérés comme nommés, sauf si leurs valeurs par défaut ne doivent pas être utilisées.

Créons une fonction qui affichera tous les paramètres dans la console. La variable data désignera un paramètre positionnel ordinaire. Ensuite, après le symbole *, deux variables start et end sont définies avec des valeurs par défaut. Cependant, lors de l'appel de la fonction, nous rendrons ces variables nommées :

pythondef func(data, *, start=0, end=100):
  print(data, start, end)
  
func(1, start=2, end=3)

Résultat de l'exécution du code :

python1 2 3

Si on supprime la valeur par défaut de la variable start et qu'en même temps on ne la spécifie pas en tant que paramètre nommé, une erreur sera affichée. Ceci se produit parce que le symbole * a déjà défini start comme une variable nommée :

pythondef func(data, *, start, end=100):
  print(data, start, end)
  
func(1, 2, end=3) # affichera une erreur
Задание 1

Quel sera le résultat de l'exécution du code suivant :

pythondef func(num1, num2, *, num3):
  return (num1 + num2) * num3
  
print(func(2, 4, num3=3))
Задание 2

Quel sera le résultat de l'exécution du code suivant :

pythondef func(num1, *, num2, num3):
  return (num1 - num2) / num3
  
print(func(12, 4, num3=5))
Задание 3

Quel sera le résultat de l'exécution du code suivant :

pythondef func(*, name='user1', age='18'):
  return 'Username is ' + name + ' age is ' + age
  
print(func(name='john'))