[Python of Hikari-] Chapitre 06-03 Fonctions (arguments et valeurs de retour 2)

[Python] Chapitre 06-03 Arguments et valeur de retour 2

Dans la section précédente, nous avons abordé les arguments et les valeurs de retour, mais il existe d'autres moyens de spécifier des arguments. Cette fois, je voudrais examiner de plus près le cas où il y a de multiples arguments réels et formels.

Argument de mot-clé

Tout d'abord, je vais expliquer les arguments des mots clés. Tout à coup, créez un fichier dans chap06 </ font> avec le nom de fichier samp06-03-01.py </ font>. , Écrivez le code ci-dessous. Notez que ** last_name ** représente le nom de famille et ** first_name ** le nom.

samp06-03-01.py


def yamada_func(last_name, first_name, age):
    print(f'Nom complet:{last_name} {first_name},âge:{age}âge')


yamada_func('Yamada', 'Ichiro', 19)
yamada_func('Yamada', 'Jiro', 17)
yamada_func('Yamada', 'Saburo', 14)

[Résultat de l'exécution] </ font> Nom: Ichiro Yamada, âge: 19 ans Nom: Jiro Yamada, âge: 17 ans Nom: Saburo Yamada, âge: 14 ans

Tout d'abord, bien que je n'ai pas expliqué en détail dans la section précédente, lors de l'appel de la fonction, lors du passage de l'argument réel spécifié comme suit à l'argument formel, ** passez-le de la gauche sans changer l'ordre ** Je suis. (** 'Yamada' ** n'est jamais passé à l'argument formel ** first_name **.) image.png

Cependant, il est possible de spécifier quel argument réel est affecté à quel argument formel comme indiqué ci-dessous. Veuillez modifier le programme que vous avez écrit précédemment comme suit.

samp06-03-01.py


def yamada_func(first_name, age, last_name):
    print(f'Nom complet:{last_name} {first_name},âge:{age}âge')


yamada_func(first_name='Ichiro', age=19, last_name='Yamada',)
yamada_func('Yamada', 'Jiro', 17)
yamada_func('Yamada', 'Saburo', 14)

[Résultat de l'exécution] </ font> Nom: Ichiro Yamada, âge: 19 ans Nom: Jiro Yamada, âge: 17 ans Nom: Saburo Yamada, âge: 14 ans

Cette fois, l'ordre de l'argument réel et de l'argument formel est différent, mais ** Si vous spécifiez le nom de variable de l'argument formel, vous pouvez appeler la fonction sans vous soucier de l'ordre **. La méthode de spécification d'une variable pour un tel argument est appelée ** argument de mot clé **. De plus, le programme écrit au tout début de cette section doit être en ordre. La méthode pour ne pas spécifier une telle variable est appelée ** argument de position **.

Argument par défaut

Auparavant, j'ai créé un programme de fonction qui génère le nom et l'âge. Ce sera un programme similaire, mais cette fois je vais créer un programme qui ** affiche le numéro de fréquentation, le nom et l'âge de la même classe d'élèves du secondaire **. Créez un fichier avec le nom de fichier samp06-03-02.py </ font> dans chap06 </ font> et utilisez le code suivant S'il vous plait écrivez.

samp06-03-02.py


def classmate_func(No, last_name, first_name, age):
    print(f'Numéro de présence:{No},Nom complet:{last_name} {first_name},âge:{age}âge')

print('Appelez la fonction.')
classmate_func(7, 'Kawasaki', 'Jyun Pei', 17)
classmate_func(13, 'Tatehara', 'Haruki', 17)
classmate_func(21, 'Matsumoto', 'Yuki', 17)

[Résultat de l'exécution] </ font> Appelez la fonction. Numéro de présence: 7, nom: Junpei Kawasaki, âge: 17 ans Numéro de présence: 13, nom: Haruki Tatehara, âge: 17 ans Numéro de présence: 21 ans, nom: Yuki Matsumoto, âge: 17 ans

Quant au résultat de sortie, c'est presque le même programme qu'avant, donc je pense qu'il n'y a pas de problème. Ce que j'aimerais que vous voyiez ici, c'est l'âge (** 17 ans **). Dans les conditions cette fois, c'est ** "dans la même classe d'élèves du secondaire" **, donc fondamentalement les âges devraient être les mêmes. (Il est possible que l'âge puisse différer en fonction de certaines circonstances, telles que les circonstances d'anniversaire, mais j'y reviendrai plus tard.)

Dans de tels cas, il est difficile de spécifier l'âge à chaque fois, vous pouvez donc le spécifier comme valeur par défaut à l'avance. Veuillez modifier le programme que vous avez écrit précédemment comme suit. * </ font> Notez également que le nombre d'arguments réels chez l'appelant de la fonction a été réduit à trois)

samp06-03-02.py


def classmate_func(No, last_name, first_name, age=17):
    print(f'Numéro de présence:{No},Nom complet:{last_name} {first_name},âge:{age}âge')

print('Appelez la fonction.')
classmate_func(7, 'Kawasaki', 'Jyun Pei')
classmate_func(13, 'Tatehara', 'Haruki')
classmate_func(21, 'Matsumoto', 'Yuki')

[Résultat de l'exécution] </ font> Appelez la fonction. Numéro de présence: 7, nom: Junpei Kawasaki, âge: 17 ans Numéro de présence: 13, nom: Haruki Tatehara, âge: 17 ans Numéro de présence: 21 ans, nom: Yuki Matsumoto, âge: 17 ans

Le résultat est le même que précédemment, mais ** 17 ** n'est pas spécifié à la place de l'argument réel. Cependant, chaque résultat de sortie spécifie ** "âge: 17 ans" **. En se concentrant sur l'argument formel de la ** fonction classmate_func ** qui est appelée, il s'agit de classmate_func (No, last_name, first_name, ** age = 17 **), et cet ** age = 17 ** , La valeur age = 17 est déjà entrée dans la fonction.

Ces arguments sont appelés ** arguments par défaut ** </ font>.

De plus, l'argument par défaut est ** uniquement la valeur par défaut, il peut donc être écrasé **. Veuillez modifier le programme que vous avez écrit précédemment comme suit. * </ font> L'argument réel de "Haruki Tatehara", l'appelant de la fonction, a été modifié.

samp06-03-02.py


def classmate_func(No, last_name, first_name, age=17):
    print(f'Numéro de présence:{No},Nom complet:{last_name} {first_name},âge:{age}âge')

print('Appelez la fonction.')
classmate_func(7, 'Kawasaki', 'Jyun Pei')
classmate_func(13, 'Tatehara', 'Haruki', 18)
classmate_func(21, 'Matsumoto', 'Yuki')

[Résultat de l'exécution] </ font> Appelez la fonction. Numéro de présence: 7, nom: Junpei Kawasaki, âge: 17 ans Numéro de présence: 13, nom: Haruki Tatehara, âge: 18 ans Numéro de présence: 21 ans, nom: Yuki Matsumoto, âge: 17 ans

finalement

Cette fois, j'ai abordé les arguments de mots clés et les arguments par défaut. Lorsqu'il y a plusieurs arguments, il est facile d'oublier quel argument lui correspond, donc l'utilisation d'arguments mot-clé dans de tels cas n'oubliera pas. De plus, les arguments par défaut peuvent parfois apparaître lors de l'écriture de programmes AI, alors gardez-les à l'esprit.

Lors de l'examen d'ingénieur d'information de base, des arguments de mots clés et des arguments par défaut peuvent être demandés, alors assurez-vous de les maintenir enfoncés si vous prévoyez de passer l'examen.

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

Recommended Posts