[Python of Hikari-] Kapitel 06-03 Funktionen (Argumente und Rückgabewerte 2)

[Python] Kapitel 06-03 Argumente und Rückgabewert 2

Im vorherigen Abschnitt haben wir Argumente und Rückgabewerte angesprochen, es gibt jedoch auch andere Möglichkeiten, Argumente anzugeben. Dieses Mal möchte ich den Fall näher betrachten, in dem es mehrere tatsächliche und formale Argumente gibt.

Schlüsselwortargument

Zunächst werde ich die Schlüsselwortargumente erläutern. Erstellen Sie plötzlich eine Datei in chap06 </ font> mit dem Dateinamen samp06-03-01.py </ font>. Schreiben Sie den folgenden Code. Beachten Sie, dass ** Nachname ** den Nachnamen und ** Vorname ** den Namen darstellt.

samp06-03-01.py


def yamada_func(last_name, first_name, age):
    print(f'Vollständiger Name:{last_name} {first_name},Alter:{age}Alter')


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

[Ausführungsergebnis] </ font> Name: Ichiro Yamada, Alter: 19 Jahre Name: Jiro Yamada, Alter: 17 Jahre Name: Saburo Yamada, Alter: 14 Jahre alt

Erstens, obwohl ich im vorherigen Abschnitt nicht ausführlich erklärt habe, übergeben Sie beim Aufrufen der Funktion beim Übergeben des wie folgt angegebenen tatsächlichen Arguments an das formale Argument ** es von links, ohne die Reihenfolge zu ändern ** Ich bin. (** 'Yamada' ** wird niemals an das formale Argument ** Vorname ** übergeben.) image.png

Es ist jedoch möglich anzugeben, welches tatsächliche Argument welchem formalen Argument zugeordnet ist, wie unten gezeigt. Bitte ändern Sie das zuvor geschriebene Programm wie folgt.

samp06-03-01.py


def yamada_func(first_name, age, last_name):
    print(f'Vollständiger Name:{last_name} {first_name},Alter:{age}Alter')


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

[Ausführungsergebnis] </ font> Name: Ichiro Yamada, Alter: 19 Jahre Name: Jiro Yamada, Alter: 17 Jahre Name: Saburo Yamada, Alter: 14 Jahre alt

Dieses Mal ist die Reihenfolge des tatsächlichen Arguments und des formalen Arguments unterschiedlich, aber ** Wenn Sie den Variablennamen des formalen Arguments angeben, können Sie die Funktion aufrufen, ohne sich um die Reihenfolge zu kümmern **. Die Methode zum Angeben einer Variablen für ein solches Argument heißt ** Schlüsselwortargument **. Außerdem muss das erste in diesem Abschnitt geschriebene Programm in Ordnung sein. Die Methode, eine solche Variable nicht anzugeben, heißt ** Positionsargument **.

Standardargument

Zuvor habe ich ein Funktionsprogramm erstellt, das den Namen und das Alter ausgibt. Es wird ein ähnliches Programm sein, aber dieses Mal werde ich ein Programm erstellen, das ** die Anwesenheitsnummer, den Namen und das Alter derselben Klasse von Schülern ** anzeigt. Erstellen Sie eine Datei mit dem Dateinamen samp06-03-02.py </ font> in chap06 </ font> und verwenden Sie den folgenden Code Bitte schreibe.

samp06-03-02.py


def classmate_func(No, last_name, first_name, age):
    print(f'Anwesenheitsnummer:{No},Vollständiger Name:{last_name} {first_name},Alter:{age}Alter')

print('Rufen Sie die Funktion auf.')
classmate_func(7, 'Kawasaki', 'Jyun Pei', 17)
classmate_func(13, 'Tatehara', 'Haruki', 17)
classmate_func(21, 'Matsumoto', 'Yuki', 17)

[Ausführungsergebnis] </ font> Rufen Sie die Funktion auf. Anwesenheitsnummer: 7, Name: Junpei Kawasaki, Alter: 17 Jahre Besucherzahl: 13, Name: Haruki Tatehara, Alter: 17 Jahre Besucherzahl: 21, Name: Yuki Matsumoto, Alter: 17 Jahre

Das Ausgabeergebnis ist fast das gleiche Programm wie zuvor, daher gibt es meines Erachtens kein Problem. Was ich möchte, dass Sie hier sehen, ist das Alter (** 17 Jahre **). Unter den Bedingungen dieses Mal ist es ** "in der gleichen Klasse von Schülern" **, also sollte das Alter im Grunde das gleiche sein. (Es ist möglich, dass das Alter abhängig von bestimmten Umständen, wie z. B. Geburtstagsumständen, unterschiedlich sein kann, aber darauf werde ich später noch eingehen.)

In solchen Fällen ist es schwierig, das Alter jedes Mal anzugeben, sodass Sie es im Voraus als Standardwert angeben können. Bitte ändern Sie das zuvor geschriebene Programm wie folgt. * </ font> Beachten Sie auch, dass die Anzahl der tatsächlichen Argumente beim Aufrufer der Funktion auf drei reduziert wurde.)

samp06-03-02.py


def classmate_func(No, last_name, first_name, age=17):
    print(f'Anwesenheitsnummer:{No},Vollständiger Name:{last_name} {first_name},Alter:{age}Alter')

print('Rufen Sie die Funktion auf.')
classmate_func(7, 'Kawasaki', 'Jyun Pei')
classmate_func(13, 'Tatehara', 'Haruki')
classmate_func(21, 'Matsumoto', 'Yuki')

[Ausführungsergebnis] </ font> Rufen Sie die Funktion auf. Anwesenheitsnummer: 7, Name: Junpei Kawasaki, Alter: 17 Jahre Besucherzahl: 13, Name: Haruki Tatehara, Alter: 17 Jahre Besucherzahl: 21, Name: Yuki Matsumoto, Alter: 17 Jahre

Das Ergebnis ist das gleiche wie zuvor, aber ** 17 ** wird nicht anstelle des eigentlichen Arguments angegeben. Jedes Ausgabeergebnis gibt jedoch ** "Alter: 17 Jahre alt" ** an. Wenn man sich auf das formale Argument der aufgerufenen ** classmate_func-Funktion ** konzentriert, ist dies classmate_func (Nein, Nachname, Vorname, ** Alter = 17 **) und dieses ** Alter = 17 ** , Der Wert von age = 17 ist bereits in der Funktion eingegeben.

Diese Argumente heißen ** Standardargumente ** </ font>.

Außerdem ist das Standardargument ** nur das Standardargument, sodass es überschrieben werden kann **. Bitte ändern Sie das zuvor geschriebene Programm wie folgt. * </ font> Das eigentliche Argument von "Haruki Tatehara", dem Aufrufer der Funktion, wurde geändert.

samp06-03-02.py


def classmate_func(No, last_name, first_name, age=17):
    print(f'Anwesenheitsnummer:{No},Vollständiger Name:{last_name} {first_name},Alter:{age}Alter')

print('Rufen Sie die Funktion auf.')
classmate_func(7, 'Kawasaki', 'Jyun Pei')
classmate_func(13, 'Tatehara', 'Haruki', 18)
classmate_func(21, 'Matsumoto', 'Yuki')

[Ausführungsergebnis] </ font> Rufen Sie die Funktion auf. Anwesenheitsnummer: 7, Name: Junpei Kawasaki, Alter: 17 Jahre Besucherzahl: 13, Name: Haruki Tatehara, Alter: 18 Jahre Besucherzahl: 21, Name: Yuki Matsumoto, Alter: 17 Jahre

Schließlich

Dieses Mal habe ich Schlüsselwortargumente und Standardargumente angesprochen. Wenn es mehrere Argumente gibt, kann man leicht vergessen, welches Argument diesem entspricht. Wenn Sie also in solchen Fällen Schlüsselwortargumente verwenden, werden Sie nicht vergessen. Außerdem werden die Standardargumente gelegentlich beim Schreiben von AI-Programmen angezeigt. Denken Sie also daran.

In der Prüfung zum Basic Information Engineer werden möglicherweise Schlüsselwortargumente und Standardargumente abgefragt. Halten Sie sie daher gedrückt, wenn Sie die Prüfung ablegen möchten.

Zurück zu [Link zum Inhaltsverzeichnis]

Recommended Posts