[Hikari-Python] <Supplement> Chapitre 06-05 Fonctions (arguments et valeurs de retour 4)

[Python] Chapitre 06-05 Arguments et valeurs de retour 4

Chapitre 06-04 a expliqué le cas où l'argument de la fonction était une liste.

Vous pouvez également prendre d'autres structures de données, telles que des tapples et des dictionnaires, comme arguments. Cette fois, je voudrais traiter de la réception de tapples et de dictionnaires comme arguments.

Cette section est </ font>, donc si vous n'avez pas le temps, vous pouvez l'ignorer. De plus, il est prévu que des problèmes tels que la gestion des arguments de tapple et de dictionnaire seront posés lors de l'examen d'ingénieur de l'information de base à l'avenir, alors lisons-le.

Nombre arbitraire d'arguments ~ Recevoir avec taple ~

Lors de l'appel d'une fonction, le nombre d'arguments réels et formels doit correspondre comme dans le programme ci-dessous. Créez un fichier avec le nom de fichier samp06-05-01.py </ font> dans chap06 </ font> et utilisez le code suivant S'il vous plait écrivez.

samp06-05-01.py


def called_func(x, y, z):
    print('Je cours dans une fonction.')
    print(x, y, z)


#called_func(2) #← Comme le nombre d'arguments ne correspond pas, une erreur se produira lors de l'appel de la fonction.
called_func(4, -1, 2)

[Résultat de l'exécution] </ font> Je cours dans une fonction. 4 -1 2

Dans le premier appel de fonction ** called_func (2) **, le nombre d'arguments réels est de 1, mais le nombre d'arguments formels est de 3, ce qui ne correspond pas. Par conséquent, si vous supprimez ce commentaire, une erreur se produira.

L'appel suivant ** called_func (4, -1, 2) ** peut être appelé car les nombres d'arguments réels et formels correspondent.

Cependant, les fonctions Python peuvent accepter n'importe quel nombre d'arguments. C'est la méthode suivante. Modifiez le programme samp06-05-01.py </ font> que vous avez écrit précédemment et écrivez le code suivant.

samp06-05-01.py


def called_func(*args):
    print('Je cours dans une fonction.')
    print(args)


called_func(2)    #← Vous pouvez appeler cette fois
called_func(4, -1, 2)

[Résultat de l'exécution] </ font> Je cours dans une fonction. (2,) Je cours dans une fonction. (4, -1, 2)

Si vous ajoutez \ * (astérisque) à l'argument formel, vous pouvez voir qu'il est reçu comme un taple. Le contenu de ** \ * args ** est affiché dans la fonction, mais \ * n'est pas requis lors de la sortie. Il utilise également le nom d'argument formel ** \ * args **, mais cela n'a pas vraiment d'importance. Cependant, la plupart des gens utilisent (habituellement) ** args **. * </ font> args est une abréviation pour argument, ce qui signifie un argument.

Nombre arbitraire d'arguments de mot-clé - Dictionnaire récepteur -

Chapitre 06-03 traitait des arguments de mots clés. En fait, vous pouvez spécifier cet argument de mot-clé avec un argument réel et recevoir un nombre arbitraire collectivement avec un argument formel. Créez un fichier avec le nom de fichier samp06-05-02.py </ font> dans chap06 </ font> et utilisez le code suivant S'il vous plait écrivez.

samp06-05-02.py


def called_func(**kwargs):
    print('Je cours dans une fonction.')
    print(kwargs)


called_func(x=1, y=2, z=3)

[Résultat de l'exécution] </ font> Je cours dans une fonction. {'x': 1, 'y': 2, 'z': 3}

Si vous ajoutez un argument mot-clé à l'argument réel et \ * \ * (deux astérisques) à l'argument formel, vous pouvez voir qu'il est reçu sous forme de dictionnaire. Le contenu de ** \ * \ * kwargs ** est sorti dans la fonction, mais \ * \ * n'est pas requis lors de la sortie. Nous utilisons également le nom d'argument formel ** \ * \ * kwargs **, mais cela n'a pas vraiment d'importance. Cependant, la plupart des gens utilisent (habituellement) ** \ * \ * kwargs **.

finalement

Il existe de nombreuses façons de recevoir des arguments, alors retenons-les. Je ne vois pas beaucoup de cas où je le reçois sous forme de taple ou de dictionnaire, mais sachez que vous pouvez également le faire. Cependant, veuillez noter qu'il est possible que des questions soient posées lors de l'examen d'ingénieur en informatique.

Retournez à [Lien de la table des matières]

Recommended Posts