[Python of Hikari-] Kapitel 05-05 Steuerungssyntax (für Anweisungs-Mehrfachschleifen-)

[Python] Kapitel 05-05 für Anweisungs-Mehrfachschleifen-

In der for-Anweisung habe ich die Verarbeitung in der for-Anweisung nach **: ** von for i in range (10) geschrieben :. Tatsächlich können Sie innerhalb dieser for-Anweisung auch mehr für Anweisungen schreiben.

Dieses Mal werde ich auf mehrere Schleifen eingehen, z. B. das Schreiben einer for-Anweisung in eine for-Anweisung.

Mehrere Schleifen mit for-Anweisung

Wenn Sie eine Doppelschleife von for schreiben, müssen Sie unterschiedliche Variablen für das äußere for und das innere for verwenden.

für Variable 1 im Wiederholungsziel:
für Variable 2 im Wiederholungsziel:
Inhalt der wiederholten Verarbeitung

Schauen wir es uns konkret an. Lassen Sie uns zunächst ein Programm erstellen, das eine Multiplikationstabelle ausgibt, die häufig in Doppelschleifen erklärt wird. Erstellen Sie eine Datei mit dem Dateinamen 05-05-01.py </ font> in chap05 </ font> und verwenden Sie den folgenden Code Bitte schreibe.

05-05-01.py


for i in range(1, 10):  #(1)
    for j in range(1, 10):  #(2)
        print(i*j, end='\t') #(3)  end='\t'Gibt Registerkarten ohne Zeilenumbrüche aus
    print('') #(4)Prozess, um eine Linie zu brechen, um zur nächsten Stufe zu gelangen


05-05-01.py Ausführungsergebnis

[Ausführungsergebnis] </ font> * Offiziell ist die Ausgabe ausgerichtet. (Bitte beachten Sie, dass es bei Qiita leicht abweicht.) </ Font> 1 2  3  4  5  6  7  8  9  2 4  6  8  10 12 14 16 18  3 6  9  12 15 18 21 24 27  4 8  12 16 20 24 28 32 36  5 10 15 20 25 30 35 40 45  6 12 18 24 30 36 42 48 54  7 14 21 28 35 42 49 56 63  8 16 24 32 40 48 56 64 72  9 18 27 36 45 54 63 72 81

Dieses Mal werde ich anhand der Kommentare (1) bis (4) erklären.

** [1. Schleife (außen)] </ font> ** Zuallererst ** für i im Bereich (1, 10): ** in (1), aber der Grund, warum ich es nicht auf Bereich (10) gesetzt habe, ist, dass es bei 0 beginnt, wenn ich es auf Bereich (10) setze. , Start wird als 1 beschrieben. (Zu diesem Zeitpunkt ist ** i = 1 **.)

** [1. Schleife (außen)] </ font> [1. Schleife (innen)] </ font> ** Geben Sie als nächstes den Inhalt von (2) ** für i im Bereich (1, 10) ein: **. Sofort sehen Sie ** für j im Bereich (1, 10): **. (Zu diesem Zeitpunkt ist ** i = 1, j = 1 </ font> **.)

Als nächstes wird ** i * j ** in der Druckfunktion von (3) berechnet. Und es wird ausgegeben, wie es ist, an diesem Punkt ** i = 1, j = 1 **, so dass das Ausgabeergebnis 1 </ font> ist. Da in der Druckfunktion ** end = '\ t' ** angegeben ist, wird der nächste Wert rechts ausgegeben, ohne die Zeile zu unterbrechen. Kehren Sie dann zu (2) zurück.

** [1. Schleife (außen)] </ font> [2. Schleife (innen)] </ font> ** Es ist die Verarbeitung von ** für j im Bereich (1, 10): ** in (2). (Zu diesem Zeitpunkt ist ** i = 1, j = 2 </ font> **.)

Als nächstes wird ** i * j ** in der Druckfunktion von (3) berechnet. Und es wird ausgegeben, wie es ist, an diesem Punkt ** i = 1, j = 2 **, so dass das Ausgabeergebnis 2 </ font> ist. Da in der Druckfunktion ** end = '\ t' ** angegeben ist, wird der nächste Wert rechts ausgegeben, ohne die Zeile zu unterbrechen. Kehren Sie dann zu (2) zurück.

** [1. Schleife (außen)] </ font> [3. Schleife (innen)] </ font> ** Es ist die Verarbeitung von ** für j im Bereich (1, 10): ** in (2). (Zu diesem Zeitpunkt ist ** i = 1, j = 3 </ font> **.)

Als nächstes wird ** i * j ** in der Druckfunktion von (3) berechnet. Und es wird ausgegeben, wie es ist, an diesem Punkt ** i = 1, j = 3 **, so dass das Ausgabeergebnis 3 </ font> ist. Da in der Druckfunktion ** end = '\ t' ** angegeben ist, wird der nächste Wert rechts ausgegeben, ohne die Zeile zu unterbrechen. Kehren Sie dann zu (2) zurück.

Wiederholen Sie diesen Vorgang bis <font color = # 0cc> <j = 9. > </ font>

** [1. Schleife (außen)] </ font> [9. Schleife (innen)] </ font> ** Es ist die Verarbeitung von ** für j im Bereich (1, 10): ** in (2). (Zu diesem Zeitpunkt ist ** i = 1, j = 9 </ font> **.)

Als nächstes wird ** i * j ** in der Druckfunktion von (3) berechnet. Und es wird ausgegeben, wie es ist, an diesem Punkt ** i = 1, j = 9 **, so dass das Ausgabeergebnis 9 </ font> ist. Da in der Druckfunktion ** end = '\ t' ** angegeben ist, wird der nächste Wert rechts ausgegeben, ohne die Zeile zu unterbrechen. Kehren Sie dann zu (2) zurück.

Und da es den Bereich (10) überschritten hat, wird ** für j </ font> im Bereich (1, 10) beendet: **. (Beachten Sie, dass es noch nicht aus *** i ** entfernt wurde) Beginnen Sie dann eine neue Zeile mit print ('') in (4). Dies liegt daran, dass die 1. Stufe von 99 vorbei ist und zur 2. Stufe übergeht.

** [2. Schleife (außen)] </ font> ** Dann kehrt es für i </ font> im Bereich ( 1 </ font>, 10) zu ** zurück: ** in (1). (Zu diesem Zeitpunkt ist ** i = 2, j = 9 **.)

** [2. Schleife (außen)] </ font> [1. Schleife (innen)] </ font> ** Geben Sie als nächstes den Inhalt von (2) ** für i im Bereich (1, 10) ein: **. Sofort sehen Sie ** für j im Bereich (1, 10): **. (Zu diesem Zeitpunkt ist ** i = 2, j = 1 </ font> **.)

Als nächstes wird ** i * j ** in der Druckfunktion von (3) berechnet. Und es wird ausgegeben, wie es ist, an diesem Punkt ** i = 2, j = 1 **, so dass das Ausgabeergebnis 2 </ font> ist. Da in der Druckfunktion ** end = '\ t' ** angegeben ist, wird der nächste Wert rechts ausgegeben, ohne die Zeile zu unterbrechen. Kehren Sie dann zu (2) zurück.

<font color = # 0cc> <Danach wiederholen, bis i = 9, j = 9. > </ font>

Und wenn Sie die Doppelschleife verlassen, endet der Prozess.

Schließlich

Wie ich erklärt habe, sind mehrere Schleifen ziemlich kompliziert, aber am Ende hat die Anzahl der Prozesse zugenommen, und es scheint, dass Sie es verstehen können, wenn Sie sie der Reihe nach befolgen. Dieses Doppelschleifenprogramm wurde in der Mitte abgeschnitten, aber bitte folgen Sie dem Vorgang. Wenn Sie dem Programm auf Ihrem Schreibtisch folgen, können Sie es als Hilfsmittel für algorithmische Probleme verwenden, die in der Prüfung zum Basic Information Engineer gestellt werden. Probieren Sie es also bitte aus.

Zurück zu [Link zum Inhaltsverzeichnis]

Recommended Posts