Einführung in Python (Python-Version APG4b)

Über diesen Artikel

Die Wettbewerbsprogrammierungsseite AtCoder enthält das einführende Programmiermaterial "AtCoder-Programmierhandbuch für Anfänger (APG4b)". Es gibt. Es ist ein sehr vollständiges einführendes Programmiermaterial und verwendet C ++, die Hauptsprache der wettbewerbsfähigen Programmierung. In diesem Artikel habe ich eine darauf basierende Python-Version von APG4b geschrieben. Grundsätzlich lesen Sie bitte APG4b und lesen Sie in diesem Artikel die Teile, die nur für Python gelten.

Das meiste davon basiert auf APG4b. Wenn Sie diesen Artikel als problematisch empfinden, entfernen Sie ihn sofort.

Die Überschrift jedes Abschnitts ist ein Link zur Kopffamilie. Da der Abschnittstitel auf die ursprüngliche Familie zugeschnitten ist, gibt es einige Unterschiede zur Python-Terminologie.

Inhaltsverzeichnis

1.00. Einführung [1.01. Ausgabe und Kommentare](https://qiita.com/saba/items/b9418d7b54cce4b106e4#101%E5%87%BA%E5%8A%9B%E3%81%A8%E3%82%B3%E3% 83% A1% E3% 83% B3% E3% 83% 88) [1.02. So schreiben Sie ein Programm und Fehler](https://qiita.com/saba/items/b9418d7b54cce4b106e4#102%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9% E3% 83% A0% E3% 81% AE% E6% 9B% B8% E3% 81% 8D% E6% 96% B9% E3% 81% A8% E3% 82% A8% E3% 83% A9% E3% 83% v. Chr.) [1.03. Vier Regeln und Priorität](https://qiita.com/saba/items/b9418d7b54cce4b106e4#103%E5%9B%9B%E5%89%87%E6%BC%94%E7%AE%97% E3% 81% A8% E5% 84% AA% E5% 85% 88% E9% A0% 86% E4% BD% 8D) 1.04. Variablen und Typen [1.05. Ausführungsreihenfolge und Eingabe](https://qiita.com/saba/items/b9418d7b54cce4b106e4#105%E5%AE%9F%E8%A1%8C%E9%A0%86%E5%BA%8F%E3 % 81% A8% E5% 85% A5% E5% 8A% 9B) [1.06.if-Anweisung / Vergleichsoperator / logischer Operator](https://qiita.com/saba/items/b9418d7b54cce4b106e4#106if%E6%96%87%E6%AF%94%E8%BC%83%E6 % BC% 94% E7% AE% 97% E5% AD% 90% E8% AB% 96% E7% 90% 86% E6% BC% 94% E7% AE% 97% E5% AD% 90) [1.07. Ergebnis des bedingten Ausdrucks und Bool-Typ](https://qiita.com/saba/items/b9418d7b54cce4b106e4#107%E6%9D%A1%E4%BB%B6%E5%BC%8F%E3%81% AE% E7% B5% 90% E6% 9E% 9C% E3% 81% A8bool% E5% 9E% 8B) [1.08. Umfang der Variablen](https://qiita.com/saba/items/b9418d7b54cce4b106e4#108%E5%A4%89%E6%95%B0%E3%81%AE%E3%82%B9%E3% 82% B3% E3% 83% BC% E3% 83% 97) [1.09. Composite Assignment Operator](https://qiita.com/saba/items/b9418d7b54cce4b106e4#109%E8%A4%87%E5%90%88%E4%BB%A3%E5%85%A5%E6 % BC% 94% E7% AE% 97% E5% AD% 90) 1.10.while-Anweisung 1.11.für Satz / Pause / Fortsetzung [1.12. Zeichenfolge (und Zeichen)](https://qiita.com/saba/items/b9418d7b54cce4b106e4#112%E6%96%87%E5%AD%97%E5%88%97%E3%81%A8 % E6% 96% 87% E5% AD% 97) [1.13. Liste (Sequenz)](https://qiita.com/saba/items/b9418d7b54cce4b106e4#113%E3%83%AA%E3%82%B9%E3%83%88%E9%85%8D%E5 % 88% 97) [1.14. Integrierte Standardbibliotheksfunktionen (STL-Funktionen)](https://qiita.com/saba/items/b9418d7b54cce4b106e4#114%E6%A8%99%E6%BA%96%E3%83%A9%E3 % 82% A4% E3% 83% 96% E3% 83% A9% E3% 83% AA% E3% 81% AE% E7% B5% 84% E3% 81% BF% E8% BE% BC% E3% 81 % BF% E9% 96% A2% E6% 95% B0stl% E3% 81% AE% E9% 96% A2% E6% 95% B0) 1.15. Funktionen Schlussfolgerung

1.00. Einführung

Über Kapitel 1

Kapitel 1 beschreibt die grundlegende Grammatik.

Programmiersprache

Das ursprüngliche APG4b befasst sich mit einer Programmiersprache namens C ++. Dieser Artikel befasst sich mit einer Programmiersprache namens Python.

So führen Sie das Programm aus

Es ist gut, eine Python-Umgebung zur Hand zu haben, aber mit AtCoder-Code-Tests können Sie genug schreiben.

Problem

Einreichungspraxis

Dieser Artikel enthält die Python-Version des Codes. Bitte verwenden Sie den ursprünglichen Übermittlungsabschnitt, um Ihre Fragen einzureichen. Das Übermittlungsfeld befindet sich unten auf der Startseite.

Ändern Sie zunächst die "Sprache" im Übermittlungsfeld in "Python3 (3.4.3)". Versuchen Sie nach dem Vornehmen von Änderungen, den folgenden Code zu kopieren und einzufügen.

print("Hello, world!")

Klicken Sie nach dem Einfügen auf die Schaltfläche "Senden". Wenn die Seite gewechselt wird und die Ergebnisspalte grün "AC" ist, ist die Übermittlung erfolgreich.

1.01. Ausgabe und Kommentare

Kernpunkt

Grundform des Programms

Das folgende Programm ist ein Programm, das nichts tut.


Mit anderen Worten, im Gegensatz zu C ++ muss die Hauptfunktion nicht geschrieben werden. Das Programm arbeitet nur durch direktes Schreiben des Verarbeitungsinhalts. Sie können die Hauptfunktion schreiben, müssen sie jedoch nicht für kleine Programme wie Wettbewerbsprogramme schreiben.

Ausgabe

Werfen wir einen Blick auf das Programm, das wir zuerst eingereicht haben. Dieses Programm gibt die Zeichenfolge "Hallo Welt!" Aus.

print("Hello, world!")

Ausführungsergebnis


Hello, world!

print() Verwenden Sie print (), um eine Zeichenfolge in Python zu drucken. Der Teil, der die auszugebende Zeichenfolge angibt, ist der Teil von "Hallo Welt!". Sie können eine Zeichenfolge drucken, indem Sie sie in () von print () schreiben. Wenn Sie mit Zeichenfolgen in Python-Programmen arbeiten, müssen diese in "" "eingeschlossen sein. Zusätzlich wird am Ende des Satzes automatisch ein Zeilenumbruch hinzugefügt.

Ende der Linie

C ++ erfordert ein ; am Ende der Zeile, aber für Python müssen Sie nichts schreiben. (Auch wenn Sie es schreiben, wird es ohne Probleme funktionieren)

Ausgabe eines anderen Strings

Wenn Sie eine andere Zeichenfolge ausgeben möchten, ändern Sie den Inhalt von "" "wie folgt.

print("Hallo Welt")

Ausgabeergebnis


Hallo Welt

Mehrere Ausgänge

Sie können auch mehrmals ausgeben.

print("a")
print("b")
print("c", "d")

Ausführungsergebnis


a
b
c d

Wie bereits erwähnt, wird Pythons print () am Ende eines Satzes automatisch unterbrochen. Daher wird "b" in der Zeile nach "a" ausgegeben. Wenn Sie als nächstes mehrere Trennzeichen mit "," schreiben, wird die Ausgabe durch Leerzeichen wie "c d" begrenzt.

Numerische Ausgabe

Wenn Sie einen numerischen Wert ausgeben, können Sie ihn auch ausgeben, indem Sie ihn direkt schreiben, ohne " " zu verwenden.

print(2525)

Ausführungsergebnis


2525

Kommentar

Kommentare dienen dazu, Notizen zu hinterlassen, um die Funktionsweise des Programms zu erläutern, und das Schreiben hat keine Auswirkungen auf die Funktionsweise des Programms. Schauen wir uns ein Beispiel für einen Kommentar in Python an.

print("Hello, world!")  # Hello, world!Angezeigt als
#Auch hier kommentieren

Ausführungsergebnis


Hello, world!

Wenn Sie "#" schreiben, steht der Kommentar in dieser Zeile nach "#".

Doppelbytezeichen

In Python funktioniert es im Gegensatz zu C ++ grundsätzlich problemlos, selbst wenn "Zeichen voller Breite" im Programm enthalten sind. Es ist jedoch schwer zu lesen, daher wird empfohlen, in "Zeichen halber Breite" zu schreiben.

Problem

Sie finden die Problemstellung unter dem folgenden Link. EX1. Code-Test- und Ausgabepraxis

Beispielprogramm


print("Hello, world!")
print("Hello, AtCoder!")
print("Hello, Python!")

Ausführungsergebnis des Beispielprogramms


Hello, world!
Hello, AtCoder!
Hello, Python!

Antwortbeispiel

** Probieren Sie das Problem unbedingt selbst aus, bevor Sie es sehen. ** ** ** Antwortbeispiel

1.02. So schreiben Sie ein Programm und einen Fehler

Kernpunkt

Wie schreibe ich ein Programm?

Beschreibt Leerzeichen, Zeilenumbrüche und Einrückungen in Ihrem Programm. Es beschreibt auch PEP8, die Python-Codierungskonvention.

Leerzeichen und Zeilenumbrüche

In Python können Leerzeichen weggelassen werden, Zeilenumbrüche sind jedoch sinnvoll und können nicht weggelassen werden.

In C ++ bedeutet ; das Zeilenende, in Python bedeutet der Zeilenumbruch das Zeilenende.

Einzug

In C ++ erfolgt das Einrücken aus Gründen der Lesbarkeit, in Python ist das Einrücken jedoch auch sinnvoll.

Schauen wir uns den Unterschied zwischen C ++ und Python anhand der unten beschriebenen if-Anweisung als Beispiel an.

C++(Mit Einrückung)


#include <bits/stdc++.h>
using namespace std;
 
int main() {
    if (Bedingter Ausdruck) {
wird bearbeitet
    }
}

C++(Keine Einrückung)


#include <bits/stdc++.h>
using namespace std;
 
int main() {
if (Bedingter Ausdruck) {
wird bearbeitet
}
}

In C ++ gibt es keinen Unterschied im Verhalten mit oder ohne Einzug innerhalb von {}}, wie oben beschrieben.

Python


wenn bedingter Ausdruck:
wird bearbeitet

Einrückung ist erforderlich, da Python : und Einrückung anstelle von {} verwendet, um anzuzeigen, dass es sich um eine if-Anweisung handelt.

PEP8 PEP8 ist ein Python-Codierungsstandard. Codierungskonventionen sind Regeln, die für die Lesbarkeit definiert sind.

Das Programm funktioniert einwandfrei, wenn Sie PEP8 nicht befolgen, aber Sie können ein Programm schreiben, das leicht zu lesen ist.

Es würde lange dauern, sie alle vorzustellen. Hier sind einige davon.

--Indent ist 4 Leerzeichen halber Breite

Details finden Sie unter https://pep8-ja.readthedocs.io/ja/latest/.

Programmfehler

Grundsätzlich ist es wie im ursprünglichen APG4b geschrieben, aber da Python eine interpretierte Sprache ist, tritt kein Kompilierungsfehler auf.

Eine interpretierte Sprache wird nicht wie C ++ kompiliert, sondern Satz für Satz ausgeführt. Wenn daher ein Grammatikfehler vorliegt, wird anstelle eines ** Kompilierungsfehlers ** ein ** Laufzeitfehler ** angezeigt.

Problem

Sie finden die Problemstellung unter dem folgenden Link. EX2. Fehler korrigieren

Programm geschrieben von Herrn A.


print("Immer)
print("2525"
print(AtCoder)

Standardfehlerausgabe


  File "./Main.py", line 1
    print("Immer)
               ^
SyntaxError: EOL while scanning string literal

Antwortbeispiel

** Probieren Sie das Problem unbedingt selbst aus, bevor Sie es sehen. ** ** ** Antwortbeispiel

1.03. Vier Regeln und Priorität

Kernpunkt

Operator Berechnungsinhalt
+ Zusatz
- Subtraktion
* Multiplikation
/ Teilung
// Kürzungsteilung
% Rest
** Reiten

Vier Regeln

Mal sehen, wie man mit einem Python-Programm eine einfache Berechnung durchführt. Die folgenden Programme führen "Addition", "Subtraktion", "Multiplikation", "Division" und "Kürzungsdivision" in der Reihenfolge von oben aus.

print(1 + 1)  # 2
print(3 - 4)  # -1
print(2 * 3)  # 6
print(7 / 3)  # 2.3333333333333335
print(7 // 3)  # 2

Ausführungsergebnis


2
-1
6
2.3333333333333335
2

Diese Symbole +, -,*,/heißen ** arithmetische Operatoren **. Negative Werte können auch berechnet werden, da "3-4" zu "-1" wird. * ** ist Multiplikation und ** / ** ist "Division". ** ** **

In Python ist / eine normale Division und das Ergebnis ist ein Bruch. Verwenden Sie // für Unterteilungen, die nach dem Dezimalpunkt abgeschnitten werden. Außerdem wird "//" immer auf ** minus unendlich ** gerundet. C ++ / wird ebenfalls abgeschnitten, aber C ++ / wird immer auf 0 gerundet, sodass ** C ++ / und Python // unterschiedlich sind **. Wenn Sie in Python immer auf 0 runden möchten, schreiben Sie etwas wie "int (a / b)".

print(10 // 3, -10 // 3)
print(int(10 / 3), int(-10 / 3))

Ausführungsergebnis


3 -4
3 -3

Restberechnung

% berechnet den "Rest beim Teilen".

print(7 % 3)  # 1
print(4 % 5)  # 4

Ausführungsergebnis


1
4

$ 7 ÷ 3 = 2 $ Nicht viel $ 1 $ $ 4 ÷ 5 = 0 $ Zu viel $ 4 $ Daher ist die Ausgabe dieses Programms "1" und "4".

Quadratberechnung

Python bietet auch einen Power Operator. Die Potenz ist eine Zahl, ausgedrückt als $ a ^ b $.

print(3 ** 4)  # 81
print(25 ** 0.5)  # 5.0
print(1.5 ** 2)  # 2.25

Ausführungsergebnis


81
5.0
2.25

Wie oben erwähnt, kann "a ** b" verwendet werden, um $ a ^ b $ zu berechnen. Sie können auch Brüche wie "25 ** 0,5" und "1,5 ** 2" berechnen.

Bedienerpriorität

Die Priorität der vier Regeln entspricht der von C ++. Beziehen Sie sich daher auf das ursprüngliche Home.

Problem

Sie finden die Problemstellung unter dem folgenden Link. EX3. Berechnungsproblem

Beispielprogramm


print("""Schreiben Sie hier die Formel""")

Antwortbeispiel

** Probieren Sie das Problem unbedingt selbst aus, bevor Sie es sehen. ** ** ** Antwortbeispiel

1.04. Variablen und Typen

Kernpunkt

--Variationen sind Memos --=ist eine Aufgabe —— „Datentyp“ wird als Typ bezeichnet

Schimmel Art der zu schreibenden Daten
int ganze Zahl
float Fraktion
str String

Variable

Werfen wir einen Blick auf eine Funktion namens ** Variablen **. Stellen Sie sich eine Variable als "Memo" vor.

Schauen wir uns ein Beispiel an.

name = 10

print(name)      # 10
print(name + 2)  # 10 + 2 → 12
print(name * 3)  # 10 * 3 → 30 

Ausführungsergebnis


10
12
30

Erklärung und Abtretung

In Python werden Deklaration und Zuweisung gleichzeitig ausgeführt. Es kann genauer sein zu sagen, dass keine Erklärung erforderlich ist.

name = 10

In diesem Teil deklarieren wir eine Variable namens "name" und weisen ihr "10" zu. Beachten Sie, dass das Symbol = "zuweisen (schreiben)" und nicht "gleich" bedeutet.

Die Erläuterungen zu "Typ" und "Wert" finden Sie in der Kopffamilie.

Im Fall von C ++ muss "int" geschrieben werden, um anzugeben, dass der Typ der Variablen "Ganzzahl" ist. Im Fall von Python wird die zugewiesene "10" jedoch automatisch als "Name" bezeichnet, da die zugewiesene "10" eine Ganzzahl ist. Es macht den Typ int.

Lesen

Der in der Variablen angegebene Wert wird in den letzten 3 Zeilen des Programms gelesen und ausgegeben.

print(name)      # 10
print(name + 2)  # 10 + 2 → 12
print(name * 3)  # 10 * 3 → 30 

Variablen werden kopiert

Wenn Sie "Variable 1 = Variable 2" schreiben, wird der Wert der Variablen selbst kopiert. Nachfolgende Änderungen des Werts einer der Variablen wirken sich nicht auf die andere aus.

a = 10

b = a
a = 5

print(a)  # 5
print(b)  # 10

Ausführungsergebnis


5
10

Beachten Sie, dass die Variable "b" bei 10 bleibt. Die Verarbeitungsdetails werden in einem Diagramm erläutert, das für die Kopffamilie leicht verständlich ist. In Python werden Deklarationen und Zuweisungen gleichzeitig vorgenommen, sodass die b-Deklaration im Teil b = a erfolgt.

Weisen Sie gleichzeitig Variablen zu

Sie können mehrere Variablen in einer Zeile zuweisen, indem Sie beim Zuweisen von Variablen "," dazwischen einfügen.

a, b = 10, 5

print(a)
print(b)

Ausführungsergebnis


10
5

Das obige Programm hat die gleiche Bedeutung, als ob Sie geschrieben hätten:

a = 10
b = 5

Regeln für Variablennamen

Sie können grundsätzlich einen beliebigen Variablennamen angeben. Wenn Sie jedoch versuchen, einige Namen als Variablennamen zu verwenden, tritt ein Fehler auf.

Variablenname nicht verfügbar

Namen, die die folgenden Bedingungen erfüllen, können keine Variablennamen sein.

Das folgende Beispiel zeigt einen Namen, der nicht als Variablenname verwendet werden kann. Das im ursprünglichen Beispiel verwendete int kann in Python als Variablenname verwendet werden (... nicht empfohlen).

100hello = 10  #Kann kein Name sein, der mit einer Zahl beginnt
na+me = "AtCoder"  #Im Variablennamen+Kann nicht verwendet werden
not = 100  #kann kein Variablenname sein, da es sich um ein Schlüsselwort handelt

Die folgenden Namen können Variablennamen sein.

hello10 = 10  #Das zweite und nachfolgende Zeichen können Zahlen sein
hello_world = "Hello, world"  # _Kann für Variablennamen verwendet werden
Variable 1= 1  #chinesische Charaktere
Hensu 2= 2  #Hiragana

Im Fall von Python können im Gegensatz zu C ++ Kanji und Hiragana auch für Variablennamen verwendet werden. Bei der Suche nach Python-Schlüsselwörtern wird eine Liste angezeigt.

Schimmel

Neben int gibt es verschiedene Arten von Python. Hier werden nur drei wichtige Typen vorgestellt. In C ++ ist der Bruch "double", in Python "float". Ebenso ist die Zeichenfolge "str".

Schimmel Art der zu schreibenden Daten
int ganze Zahl
float Bruch (reelle Zahl)
str String
i = 10  #10 ist eine ganze Zahl
f = 0.5  # 0.5 ist ein Bruchteil
s = "Hello"  # "Hello"Ist eine Zeichenfolge

print(i, type(i))  # type(Variable) でVariableの型がわかる
print(f, type(f))
print(s, type(s))

Ausführungsergebnis


10 <class 'int'>
0.5 <class 'float'>
Hello <class 'str'>

Berechnung zwischen verschiedenen Typen

** Typkonvertierung ** wird für Berechnungen zwischen verschiedenen Typen durchgeführt. Das Ergebnis der Berechnung von int-Typ und float-Typ ist beispielsweise float-Typ.

** Berechnungen zwischen Typen, die nicht konvertiert werden können, führen jedoch zu einem Fehler **.

i = 30
d = 1.5
s = "Hello"

print(i + d, type(i + d))  # 31.5
print(i * d, type(i * d))  # 45.0

"""
Die folgende Verarbeitung ist ein Fehler
print(s + i)  #Hinzufügen von str type und int type
print(s + d)  #Hinzufügen von str-Typ und float-Typ
"""

Ausführungsergebnis


31.5 <class 'float'>
45.0 <class 'float'>

Im Fall von Python ist es möglich, "str type * int type" zu berechnen.

i = 5
s = "Hello"

print(s * i)  # "Hello" * 5 → ???

Was sind die Ergebnisse des oben genannten Programms? Sehen wir uns das Ausführungsergebnis an.

Ausführungsergebnis


HelloHelloHelloHelloHello

"Hallo" ist eine Zeichenfolge, die fünfmal wiederholt wird.

Zuordnung zwischen verschiedenen Typen

In Python hängt der Variablentyp davon ab, was sich darin befindet. Daher funktioniert das folgende Programm normal.

i = 10
s = "Hello"

i = s

print(i)
print(type(i))

Ausführungsergebnis


Hello
<class 'str'>

Problem

Sie finden die Problemstellung unter dem folgenden Link. EX4. ◯ Wie viele Sekunden ist das Jahr?

Beispielprogramm


#Anzahl der Sekunden pro Jahr
seconds = 365 * 24 * 60 * 60

#Die folgenden Kommentare""" """Löschen und hinzufügen
print("""Wie viele Sekunden pro Jahr""")
print("""2 Jahre sind ein paar Sekunden""")
print("""Wie viele Sekunden sind 5 Jahre""")
print("""Wie viele Sekunden sind 10 Jahre""")

Antwortbeispiel

** Probieren Sie das Problem unbedingt selbst aus, bevor Sie es sehen. ** **. Antwortbeispiel

1.05. Ausführungsreihenfolge und Eingabe

Kernpunkt

Programmausführungsreihenfolge

Grundsätzlich werden ** Programme in der Reihenfolge von oben nach unten ausgeführt **.

Schauen Sie sich das folgende Programm an.

name = 10

print(name)  # 10

name = 5

print(name)  # 5

Ausführungsergebnis


10
5

Die Grundstruktur ist die gleiche wie die der Kopffamilie. Informationen zur Ausführung finden Sie auf der Folie der Kopffamilie.

Eingang

Mal sehen, wie man Dateneingaben empfängt, wenn das Programm ausgeführt wird. Mit der "Eingabefunktion" können Sie verschiedene Berechnungen durchführen, ohne das Programm neu zu schreiben.

Verwenden Sie input (), um Eingaben zu erhalten. Das folgende Programm ist ein Programm, das den als Eingabe empfangenen numerischen Wert mit 10 multipliziert und ausgibt.

a = int(input())

print(a * 10)

Eingang


5

Ausführungsergebnis


50

input () nimmt eine Eingabezeile als Zeichenfolge. Um es als int-Typ zu empfangen, muss es daher von int () in einen int-Typ konvertiert werden.

a = input()

print(a, type(a))

a = int(a)  #In int-Typ konvertieren

print(a, type(a))

Eingang


5

Ausführungsergebnis


5 <class 'str'>
5 <class 'int'>

Eingabe von nicht ganzzahligen Daten

Wenn Sie nicht ganzzahlige Daten empfangen möchten, müssen Sie diese ebenfalls in den erforderlichen Typ konvertieren.

text = input()
f = float(input())

print(text, f)

Eingang


Hello
1.5

Ausführungsergebnis


Hello 1.5

Geben Sie ein leeres Trennzeichen ein

Wie bereits erwähnt, verwendet "input ()" eine einzelne Eingabezeile als Zeichenfolge.

a = input()

print(a)
print(type(a))

Eingang


10 20 30

Ausführungsergebnis


10 20 30
<class 'str'>

Wenn Sie also nur eine durch Leerzeichen getrennte Eingabe erhalten, wird diese der Variablen "a" als Zeichenfolge "10 20 30" zugewiesen, wie oben gezeigt.

Mit Leerzeichen teilen

Daher müssen Sie nach. Input () .split () hinzufügen, um die Zeichenfolge zu zerlegen.

a, b, c = input().split()

print(a)
print(type(a))

Eingang


10 20 30

Ausführungsergebnis


10
<class 'str'>

Auf diese Weise wurde "10 20 30" in drei Teile unterteilt: "10", "20" und "30".

In eine Ganzzahl konvertieren

Wenn Sie es danach wie zuvor mit int () in eine Ganzzahl konvertieren, können Sie die durch Leerzeichen getrennte Eingabe als Ganzzahl empfangen.

a, b, c = input().split()

a = int(a)
b = int(b)
c = int(c)

print(a)
print(type(a))

Eingang


10 20 30

Ausführungsergebnis


10
<class 'int'>

Im obigen Programm wurde die Konvertierung in den Typ int jedes Mal für die Anzahl der Variablen geschrieben, dies kann jedoch auch in einer Zeile geschrieben werden.

a, b, c = map(int, input().split())

print(a)
print(type(a))

Eingang


10 20 30

Ausführungsergebnis


10
<class 'int'>

Durch Schreiben von "map (type, input (). Split ())" können Sie alle geteilten Zeichenfolgen gleichzeitig in den angegebenen Typ konvertieren.

Mehrzeiliger Eingang

input () empfängt eine Eingabezeile. Wenn also mehrere Eingabezeilen vorhanden sind, müssen Sie so viele Zeilen schreiben, wie Zeilen vorhanden sind.

s = input()
a = int(input())

print(s, a)

Eingang


Hello
10

Ausführungsergebnis


Hello 10

Problem

Sie finden die Problemstellung unter dem folgenden Link. EX5.A Addition B Problem

Beispielprogramm


#Fügen Sie das Programm hier hinzu

Antwortbeispiel

** Probieren Sie das Problem unbedingt selbst aus, bevor Sie es sehen. ** **. Antwortbeispiel

1.06.if Anweisung / Vergleichsoperator / logischer Operator

Kernpunkt

wenn bedingter Ausdruck 1:
Prozess 1
elif bedingter Ausdruck 2:
Prozess 2
else:
Prozess 3
Operator Bedeutung
x == y x und y sind gleich
x != y x und y sind nicht gleich
x > y x ist größer als y
x < y x ist kleiner als y
x >= y x ist größer oder gleich y
x <= y x ist kleiner oder gleich y
Operator Bedeutung Wann soll man wahr sein?
kein bedingter Ausdruck Inversion des Ergebnisses des bedingten Ausdrucks Der bedingte Ausdruck ist falsch
Bedingter Ausdruck 1 und bedingter Ausdruck 2 Der bedingte Ausdruck 1 ist wahr und der bedingte Ausdruck 2 ist wahr Sowohl der bedingte Ausdruck 1 als auch der bedingte Ausdruck sind wahr
Bedingter Ausdruck oder bedingter Ausdruck 2 Der bedingte Ausdruck 1 ist wahr oder der bedingte Ausdruck 2 ist wahr Mindestens einer der bedingten Ausdrücke 1 und der bedingten Ausdrücke 2 ist wahr

if-Anweisung

Mit der ** if-Anweisung ** können Sie ein Programm namens ** schreiben, das nur verarbeitet, wenn bestimmte Bedingungen korrekt sind. Die Schreibmethode ist wie folgt.

wenn bedingter Ausdruck:
wird bearbeitet

Wenn der bedingte Ausdruck ** korrekt ist, wird die Verarbeitung des Teils ausgeführt, in dem der Einzug nach : um eins verringert wird, und wenn der bedingte Ausdruck falsch ist, wird die Verarbeitung übersprungen.

Wenn im folgenden Beispiel der Eingabewert kleiner als 10 ist, wird "x ist kleiner als 10" ausgegeben und dann "end" ausgegeben. Wenn der Eingabewert nicht kleiner als 10 ist, wird nur "Ende" ausgegeben.

x = int(input())

if x < 10:
    print("x ist kleiner als 10")

print("Ende")

Eingabe 1


5

Ausführungsergebnis 1


x ist kleiner als 10
Ende

Eingabe 2


15

Ausführungsergebnis 2


Ende

In diesem Beispiel geben wir zuerst ganzzahlige Daten in die Variable x ein.

x = int(input())

Dann ist es wichtig.

if x < 10:
    print("x ist kleiner als 10")

Dieser Teil bedeutet "wenn" x <10 "(x ist kleiner als 10), wird" x als weniger als 10 "ausgegeben". Führen Sie abschließend "print (" end ")" aus, um "end" zu drucken, und das Programm wird beendet.

Wenn x nicht kleiner als 10 ist

    print("x ist kleiner als 10")

Die Verarbeitung wird übersprungen. Daher wird im zweiten Ausführungsbeispiel nur "Ende" ausgegeben.

Ausführung der Verarbeitung unter bestimmten Bedingungen wie der if-Anweisung heißt ** bedingter Zweig **. Außerdem heißt "der bedingte Ausdruck ist korrekt" ** der bedingte Ausdruck ist wahr ** und "der bedingte Ausdruck ist falsch" heißt ** der bedingte Ausdruck ist falsch **.

Vergleichsoperator

Die Vergleichsoperatoren von Python sind mit C ++ identisch. Weitere Informationen finden Sie im Originalabschnitt für diesen Abschnitt.

Operator Bedeutung
x == y x und y sind gleich
x != y x und y sind nicht gleich
x > y x ist größer als y
x < y x ist kleiner als y
x >= y x ist größer oder gleich y
x <= y x ist kleiner oder gleich y

Das folgende Programm gibt aus, welche Bedingungen der eingegebene ganzzahlige Wert erfüllt.

x = int(input())

if x < 10:
    print("x ist kleiner als 10")

if x >= 20:
    print("x ist 20 oder mehr")

if x == 5:
    print("x ist 5")

if x != 100:
    print("x ist nicht 100")

print("Ende")

Eingabe 1


5

Ausführungsergebnis 1


x ist kleiner als 10
x ist 5
x ist nicht 100
Ende

Eingabe 2


100

Ausführungsergebnis 2


x ist 20 oder mehr
Ende

Logischer Operator

Sie können auch komplexere Bedingungen in den bedingten Ausdruck schreiben. Verwenden Sie dazu den logischen Operator **.

Operator Bedeutung Wann soll man wahr sein?
kein bedingter Ausdruck Inversion des Ergebnisses des bedingten Ausdrucks Der bedingte Ausdruck ist falsch
Bedingter Ausdruck 1 und bedingter Ausdruck 2 Bedingter Ausdruck 1 ist wahrUndDer bedingte Ausdruck 2 ist wahr Sowohl der bedingte Ausdruck 1 als auch der bedingte Ausdruck sind wahr
Bedingter Ausdruck oder bedingter Ausdruck 2 Bedingter Ausdruck 1 ist wahrOderDer bedingte Ausdruck 2 ist wahr Mindestens einer der bedingten Ausdrücke 1 und der bedingten Ausdrücke 2 ist wahr
x, y = map(int, input().split())

if not x == y:
    print("x und y sind nicht gleich")

if x == 10 and y == 10:
    print("x und y sind 10")

if x == 0 or y == 0:
    print("x oder y ist 0")

print("Ende")

Eingabe 1


2 3

Ausführungsergebnis 1


x und y sind nicht gleich
Ende

Eingabe 2


10 10

Ausführungsergebnis 2


x und y sind 10
Ende

Eingabe 3


0 8

Ausführungsergebnis 3


x und y sind nicht gleich
x oder y ist 0
Ende

Verarbeitung von "wenn die vorherige Bedingung nicht erfüllt ist"

sonst Klausel

Durch Schreiben der ** else-Klausel ** nach der if-Anweisung kann die Verarbeitung durchgeführt werden, "wenn die Bedingung der if-Anweisung falsch ist". Die Schreibmethode ist wie folgt.

wenn bedingter Ausdruck 1:
Prozess 1
else:
Prozess 2

Das folgende Programm gibt "x ist kleiner als 10" aus, wenn der Eingabewert kleiner als 10 ist, andernfalls "x ist nicht kleiner als 10".

x = int(input())

if x < 10:
    print("x ist kleiner als 10")
else:
    print("x ist nicht kleiner als 10")

Eingabe 1


5

Ausführungsergebnis 1


x ist kleiner als 10

Eingabe 2


15

Ausführungsergebnis 2


x ist nicht kleiner als 10

elif In "elif" wird die Verarbeitung ausgeführt, wenn "die Bedingung der vorherigen if-Anweisung falsch ist" und "die Bedingung von elif wahr ist". Die Schreibmethode ist wie folgt.

wenn bedingter Ausdruck 1:
Prozess 1
elif bedingter Ausdruck 2:
Prozess 2

Prozess 2 wird ausgeführt, wenn "der bedingte Ausdruck 1 falsch und der bedingte Ausdruck 2 wahr ist". Schauen wir uns ein Beispiel an.

x = int(input())

if x < 10:
    print("x ist kleiner als 10")
elif x > 20:
    print("x ist nicht kleiner als 10, aber größer als 20")
elif x == 15:
    print("x ist nicht kleiner als 10 und nicht größer als 20 und ist 15.")
else:
    print("x ist nicht kleiner als 10, nicht größer als 20, nicht 15.")

Eingabe 1


5

Ausführungsergebnis 1


x ist kleiner als 10

Eingabe 2


30

Ausführungsergebnis 2


x ist nicht kleiner als 10, aber größer als 20

Eingabe 3


15

Ausführungsergebnis 3


x ist nicht kleiner als 10 und nicht größer als 20 und ist 15.

Eingabe 4


13

Ausführungsergebnis 4


x ist nicht kleiner als 10, nicht größer als 20, nicht 15.

Sie können auch elif oder nach elif schreiben, wie in diesem Beispiel.

Problem

Sie finden die Problemstellung unter dem folgenden Link. EX6. Machen wir einen Taschenrechner

Beispielprogramm


a, op, b = input().split()
a = int(a)
b = int(b)

if op == "+":
    print(a + b)

#Fügen Sie das Programm hier hinzu

Antwortbeispiel

** Probieren Sie das Problem unbedingt selbst aus, bevor Sie es sehen. ** **. Antwortbeispiel

1.07. Ergebnis des bedingten Ausdrucks und Bool-Typ

Kernpunkt

int Typ Darstellung Bool-Typ-Darstellung
wahr 1 True
falsch 0 False

Ergebnis des bedingten Ausdrucks

In Python wird die Wahrheit durch "Wahr" und das Falsche durch "Falsch" dargestellt. Beachten Sie, dass der Anfang im Gegensatz zu C ++ in Großbuchstaben geschrieben ist. Das "Berechnungsergebnis" des bedingten Ausdrucks ist auch "Wahr", wenn es wahr ist, und "Falsch", wenn es falsch ist.

Das folgende Programm gibt das Ergebnis des bedingten Ausdrucks unverändert aus und prüft, welchen Wert er annimmt, wenn er wahr und wenn er falsch ist.

print(5 < 10)
print(5 > 10)

Ausführungsergebnis


True
False

Wenn Sie sich die Ausgabe ansehen, können Sie sehen, dass sie "True" ist, wenn die Bedingung wahr ist, und "False", wenn sie falsch ist.

Richtig und falsch

Im Fall von Python werden wahr und falsch normalerweise durch "wahr" und "falsch" dargestellt, sodass dieser Titel möglicherweise nicht korrekt ist, aber zum Original passt.

Sie können auch True oder False direkt in den Teil mit bedingten Ausdrücken schreiben. Das folgende Programm ist ein Beispiel.

#True steht für true und wird daher als Hallo ausgegeben
if True:
    print("hello")

#False steht für false, daher wird dies nicht ausgeführt
if False:
    print("world")

Ausführungsergebnis


hello

Im int-Typ wird "True" durch "1" und "False" durch "0" dargestellt.

print(int(True))
print(int(False))

Ausführungsergebnis


1
0

Bool-Typ

Es gibt einen Datentyp namens ** Bool-Typ **. Variablen dieses Typs können nur "True" oder "False" enthalten.

x = int(input())

a = True
b = x < 10  #Richtig, wenn x kleiner als 10 ist
c = False

if a and b:
    print("hello")

if c:
    print("world")

Eingang


3

Ausführungsergebnis


hello

Verwenden Sie auf diese Weise den Bool-Typ, wenn Sie Wahrheitsdaten als Variablen behandeln möchten, z. B. das Ergebnis eines bedingten Ausdrucks. Bisher wurde es als "wenn bedingter Ausdruck" geschrieben, aber im Grunde ist es ein Wert vom Typ "wenn bool".

Die folgende Tabelle fasst die bisherige Geschichte zusammen.

int Typ Darstellung Bool-Typ-Darstellung
wahr 1 True
falsch 0 False

Szenen mit Bool-Typ

Bitte beziehen Sie sich auf die Oberfamilie.

Problem

Sie finden die Problemstellung unter dem folgenden Link. EX7.bool-Wert-Puzzle

Beispielprogramm


#Variable a, b,Ersetzen Sie c durch True oder False, damit es als AtCoder ausgegeben wird
a = #Richtig oder falsch
b = #Richtig oder falsch
c = #Richtig oder falsch

#Von hier an nicht ändern

if a:
    print("At", end="")  # end=""Wird das Ende nicht brechen
else:
    print("Yo", end="")

if (not a) and b:
    print("Bo", end="")
elif (not b) and c:
    print("Co", end="")

if a and b and c:
    print("foo!")
elif True and False:
    print("yeah!")
elif (not a) or c:
    print("der")

Antwortbeispiel

** Probieren Sie das Problem unbedingt selbst aus, bevor Sie es sehen. ** **. Antwortbeispiel

1.08. Umfang der Variablen

Kernpunkt

Variabler Umfang

Bis jetzt habe ich nach der if-Anweisung : geschrieben und in die folgende Zeile eingerückt. Der Teil mit diesem Einzug heißt ** Block **.

Die Oberfamilie sagt "

Schauen wir uns ein konkretes Beispiel an.

x = 5

if x == 5:
    y = 10
    print(x + y)

print(x)
print(y)

Ausführungsergebnis


15
5
10

Dies ist der gleiche Inhalt wie das Programm, das in der ursprünglichen Familie aufgeführt ist. Da ich zu Hause mit C ++ zu tun habe, wird dies als Beispiel für das Abrufen eines Fehlers gezeigt. In Python tritt der Fehler jedoch nicht wie oben beschrieben auf und funktioniert einwandfrei.

Weitere Informationen zum Umfang finden Sie in der Kopffamilie.

Problem

Sie finden die Problemstellung unter dem folgenden Link. EX8. Takoyaki-Set

Programm geschrieben von Herrn A.


p = int(input())

#Muster 1
if p == 1:
    price = int(input())

#Muster 2
if p == 2:
    text = input()
    price = int(input())

n = int(input())

print(text + "!")
print(price * n)

Antwortbeispiel

** Probieren Sie das Problem unbedingt selbst aus, bevor Sie es sehen. ** **. Antwortbeispiel

1.09. Zusammengesetzter Zuweisungsoperator

Kernpunkt

--x = x + y kann so kurz wie x + = y geschrieben werden

Verbindungszuweisungsoperator

Zuweisungsanweisungen, bei denen derselbe Variablenname zweimal vorkommt, z. B. "x = x + 1", können mit dem ** zusammengesetzten Zuweisungsoperator ** kürzer geschrieben werden.

Das folgende Programm fügt der Variablen x einfach "(1 + 2)" hinzu und gibt sie aus.

x = 5
x += 1 + 2
print(x)  # 8

Ausführungsergebnis


8
x += 1 + 2

Ist

x = x + (1 + 2)

Hat die gleiche Bedeutung wie.

Zusammengesetzter Zuweisungsoperator außer + =

Sie können dasselbe für andere arithmetische Operatoren tun.

a = 5
a -= 2
print(a)  # 3

b = 3
b *= 1 + 2
print(b)  # 9

c = 5
c /= 2
print(c)  # 2.5

d = 5
d //= 2
print(d)  # 2

e = 5
e %= 2
print(e)  # 1

f = 3
f **= 4
print(f)  # 81

Ausführungsergebnis


3
9
2.5
2
1
81

Inkrementieren und Dekrementieren

C ++ hat Inkremente und Dekremente, Python jedoch nicht. Wenn Sie mehr über Inkremente erfahren möchten, beziehen Sie sich bitte auf das ursprüngliche Haus.

Problem

Sie finden die Problemstellung unter dem folgenden Link. EX9. Verwenden wir den zusammengesetzten Zuweisungsoperator

Beispielprogramm


x, a, b = map(int, input().split())

# 1.Ausgabe von
x += 1
print(x)

#Fügen Sie das Programm hier hinzu

Antwortbeispiel

** Probieren Sie das Problem unbedingt selbst aus, bevor Sie es sehen. ** ** ** Antwortbeispiel

1.10.while-Anweisung

Kernpunkt

während bedingter Ausdruck:
wird bearbeitet
i = 0  #Zählervariable
while i < N:
wird bearbeitet
    i += 1

while-Anweisung

Die ** while-Anweisung ** kann verwendet werden, um eine "repetitive Verarbeitung" (Schleifenverarbeitung) durchzuführen, was für die Funktionen des Programms sehr wichtig ist.

Endlosschleife

Das folgende Programm ist ein Programm, das den Vorgang des Ausgebens von "Hallo" wiederholt, das Unterbrechen einer Zeile und das anschließende Ausgeben von "AtCoder" auf unbestimmte Zeit wiederholt.

while True:
    print("Hello")
    print("AtCoder")

Ausführungsergebnis


Hello
AtCoder
Hello
AtCoder
Hello
AtCoder
Hello
AtCoder
Hello
AtCoder
...(Unendlich)

Die while-Anweisung wird wie folgt geschrieben und der Vorgang wird wiederholt, wenn der bedingte Ausdruck wahr ist.

während bedingter Ausdruck:
wird bearbeitet

Im vorherigen Programm wurde "True" in den Teil des bedingten Ausdrucks geschrieben, sodass der Prozess unbegrenzt fortgesetzt wird. Diese Art der Endloswiederholung wird als ** Endlosschleife ** bezeichnet.

Zähle eins nach dem anderen

Das folgende Programm gibt weiterhin Ganzzahlen ab 1 aus.

i = 1

while True:
    print(i)
    i += 1  #Erhöhen Sie für jede Schleife um 1

Ausführungsergebnis


1
2
3
4
5
6
7
8
...(Unendlich um 1 erhöht)

Angabe der Anzahl der Schleifen

Gehen Sie wie folgt vor, um das Programm, das um 1 zählt, in "ein Programm, das Zahlen von 1 bis 5 ausgibt" zu ändern.

i = 1

#Schleife nur, wenn ich 5 oder weniger bin
while i <= 5:
    print(i)
    i += 1

Ausführungsergebnis


1
2
3
4
5

Zählervariable von 0 bis weniger als N.

Stellen Sie sich ein Programm vor, das fünfmal "Hallo" ausgibt. Zuerst werde ich den ungewöhnlichen Schreibstil (den Schreibstil, der gestoppt werden sollte) und dann den allgemeinen Schreibstil (empfohlener Schreibstil) vorstellen.

Gelegentliches Schreiben

#starte ich von 1
i = 1

#Schleife nur, wenn ich 5 oder weniger bin
while i <= 5:
    print("Hello")
    i += 1

Ausführungsergebnis


Hello
Hello
Hello
Hello
Hello

Wenn Sie ein Programm schreiben, das "$ N $ mal" mit einer while-Anweisung verarbeitet, wurde es im Format "Start i von 1 und Schleife für weniger als $ N $" geschrieben.

i = 1
while i <= N:
wird bearbeitet
    i += 1

Dieses Format mag auf den ersten Blick unkompliziert erscheinen. Dieser Schreibstil ist jedoch nicht sehr verbreitet und sollte wie folgt geschrieben werden.

Allgemeines Schreiben

#starte i von 0
i = 0

#Schleife nur, wenn ich kleiner als 5 ist
while i < 5:
    print("Hello")
    i += 1

Ausführungsergebnis


Hello
Hello
Hello
Hello
Hello

Wenn Sie ein Programm schreiben, das "$ N $ mal verarbeitet", ist es üblich, im folgenden Format zu schreiben ** "Start i von 0 und Schleife, wenn i kleiner als $ N $ ist " Es ist **.

i = 0
while i < N:
wird bearbeitet
    i += 1

Es mag zunächst verwirrend erscheinen, aber es wird später einfacher sein, das Programm zu schreiben, also gewöhnen wir uns daran.

Beachten Sie, dass Variablen, die die "Anzahl der Schleifen" verwalten, wie die Variable "i" in diesem Programm, manchmal als ** Zählervariablen ** bezeichnet werden. Es ist üblich, "i" für Zählervariablen zu verwenden und sie "j", "k", "l", ... zu nennen, wenn "i" nicht verwendet werden kann.

Anwendungsbeispiel

Lassen Sie uns ein Programm erstellen, um die Gesamtpunktzahl von $ N $ Personen zu ermitteln. Das folgende Programm empfängt "Anzahl der Eingaben $ N " und " N $ Ganzzahlen, die Punkte darstellen" als Eingaben und gibt die Gesamtpunkte aus.

n = int(input())

sum = 0  #Variable, die die Gesamtpunktzahl darstellt
i = 0    #Zählervariable

while i < n:
    x = int(input())
    sum += x
    i += 1

print(sum)

Eingang


3
1
10
100

Ausführungsergebnis


111

Ich habe eine Variable "sum" erstellt, die die Gesamtpunktzahl darstellt, sie bei jeder Schleife in die Eingabevariable "x" eingefügt und zu "sum" hinzugefügt. Es gibt eine Folie, die der Kopffamilie den Verarbeitungsinhalt erklärt.

Problem

Sie finden die Problemstellung unter dem folgenden Link. EX10. Ausgabe des Balkendiagramms

Wenn Sie nur print () verwenden, wird am Ende automatisch ein Zeilenumbruch eingefügt, sodass Sie print (Ausgabeinhalt, end =" ") verwenden können, um den Zeilenumbruch am Ende zu verhindern.

Beispielprogramm


a, b = map(int, input().split())

#Fügen Sie das Programm hier hinzu

Antwortbeispiel

** Probieren Sie das Problem unbedingt selbst aus, bevor Sie es sehen. ** **. Antwortbeispiel

1.11.für Satz / Pause / Fortsetzung

Kernpunkt

für Zählervariable in Spalte:
wird bearbeitet
for i in range(N):
wird bearbeitet

zur Aussage

** for-Anweisung ** ist eine Syntax zum Schreiben von Mustern, die in der iterativen Verarbeitung häufig vorkommen, z. B. "$ N $ mal verarbeiten", die kürzer als die while-Anweisung sind.

Wenn Sie ein Programm schreiben, das dreimal mit einer while-Anweisung und einer for-Anweisung wiederholt wird, ist dies wie folgt.

j = 0
while j < 3:
    print("Hello while:", j)
    j += 1

for i in range(3):
    print("Hello for:", i)

Ausführungsergebnis


Hello while: 0
Hello while: 1
Hello while: 2
Hello for: 0
Hello for: 1
Hello for: 2

Die for-Anweisung ist wie folgt geschrieben.

für Zählervariable in Spalte:
wird bearbeitet

Wir werden in einem späteren Abschnitt mehr über Spalten sprechen, aber es gibt Zahlen (Listen) wie "[3, 1, 4, 1, 5]" und Zeichenfolgen wie "abcdef". Schauen wir uns das folgende Programm an.

for i in [3, 1, 4, 1, 5]:
    print("i:", i)

Ausführungsergebnis


i: 3
i: 1
i: 4
i: 1
i: 5

Sie können sehen, dass der Inhalt der Liste "[3, 1, 4, 1, 5]" von Anfang an abgerufen und "i" zugewiesen wird.

N-mal iterative Verarbeitung

Wenn Sie eine iterative Verarbeitung durchführen möchten, z. B. "$ N $ mal verarbeiten", ist es einfacher, "range ()" zu verwenden. Das Schreiben von "range (a, b)" erzeugt eine Folge von "[a, a + 1, a + 2, ..., b-1]".

for i in range(0, 5):  # [0, 1, 2, 3, 4]
    print(i)

Ausführungsergebnis


0
1
2
3
4

Das "a" von "Bereich (a, b)" kann weggelassen werden, wenn es 0 ist, und kann als "Bereich (b)" geschrieben werden. Daher haben die folgenden beiden Schreibstile dieselbe Bedeutung.

for i in range(0, 5):
    print(i)

for i in range(5):
    print(i)

Ausführungsergebnis


0
1
2
3
4
0
1
2
3
4

Mit anderen Worten, wenn Sie "$ N $ mal iterieren" schreiben möchten, können Sie wie folgt schreiben. Beginnen wir zunächst mit dem Erlernen dieser einfachen Schreibweise.

for i in range(N):
wird bearbeitet

Tipps zur Verwendung der for-Anweisung

Denken Sie bei der Verwendung der for-Anweisung von "Iterate $ N $ times" nicht an die detaillierte Operation "Zuweisen der Zählervariablen in der Reihenfolge vom Anfang der Spalte an". Grob gesagt ist es einfacher, ein Programm zu schreiben, das die for-Anweisung verwendet, wenn Sie sich die ** for-Anweisung als eine Funktion vorstellen, die die Verarbeitung von $ N $ -mal wiederholt und $ i $ um 1 erhöht.

brechen und weitermachen

Es gibt ** break ** und ** continue ** als Anweisungen zur Steuerung der while- und for-Anweisungen.

break break ist eine Anweisung zum Unterbrechen der Schleife in der Mitte. Dies ist ein Beispiel für ein Programm, das break verwendet.

#Ohne Unterbrechung wäre diese Schleife i==Wiederholen Sie bis zu 4
for i in range(5):

    if i == 3:
        print("Geh raus")
        break  # i ==Bei 3 aus der Schleife ausbrechen

    print(i)

print("Ende")

Ausführungsergebnis


0
1
2
Geh raus
Ende

Wenn "i == 3" in der if-Anweisung wahr wird, wird die for-Schleife durch Ausführen der Anweisung "break" beendet und "end" wird angezeigt.

continue continue ist eine Anweisung, die nachfolgende Verarbeitung zu überspringen und zur nächsten Schleife zu wechseln. Dies ist ein Beispiel für ein Programm, das continue verwendet.

for i in range(5):

    if i == 3:
        print("Überspringen")
        continue  # i ==Wenn es 3 ist, überspringen Sie die Verarbeitung danach

    print(i)

print("Ende")

Ausführungsergebnis


0
1
2
Überspringen
4
Ende

Wenn im obigen Programm "i == 3" in der if-Anweisung wahr wird, wird der folgende Teil "continue" durch Ausführen der Anweisung "continue" übersprungen und die nächste Schleife wird eingegeben.

Problem

Sie finden die Problemstellung unter dem folgenden Link. EX11. Machen wir einen Taschenrechner 2

Wenn Sie "print (" {} ". Format (variable))" wie folgt schreiben, wird der Inhalt der Variablen in den Teil von "{}" eingebettet.

a = 1
b = "Hello"

print("{}:{}".format(a, b))  #Zuerst{}Auf eine Sekunde{}Zu b

Ausführungsergebnis


1:Hello

Unten finden Sie ein Beispielprogramm.

Beispielprogramm


n = int(input())
a = int(input())

#Fügen Sie das Programm hier hinzu

Antwortbeispiel

** Probieren Sie das Problem unbedingt selbst aus, bevor Sie es sehen. ** ** ** Antwortbeispiel

1.12. Zeichenkette (und Zeichen)

Kernpunkt

Zeichenkette (str-Typ)

Zeichenketten wie "abc" und "hallo" sind solche, in denen die Zeichen in der richtigen Reihenfolge angeordnet sind. C ++ unterscheidet zwischen Zeichenfolgen und Zeichen (Länge 1), Python jedoch nicht und behandelt beide als Zeichenfolgen (Typ str).

str1 = input()
str2 = ", world!"

print(str1 + str2)

Eingang


Hello

Ausführungsergebnis


Hello, world!

String-Länge

Die Länge (Anzahl der Zeichen) der Zeichenfolge kann mit "len (Zeichenfolgenvariable)" ermittelt werden.

s = "Hello"
print(len(s))

Ausführungsergebnis


5

i-te Charakter

Sie können das Zeichen $ i $ erhalten, indem Sie wie folgt schreiben.

String[i]

Dieses "i" heißt ** tiefgestellt **.

Indizes beginnen bei 0

Beachten Sie, dass die Indizes bei 0 beginnen.

s = "hello"
print(s[0])  # h
print(s[4])  # o

Ausführungsergebnis


h
o

s [0] erhält das erste Zeichen und s [4] erhält das fünfte Zeichen. Für die Zeichenfolge "Hallo" wird die Entsprechung zwischen Indizes und Zeichen in der folgenden Tabelle gezeigt.

Index 0 1 2 3 4
Brief h e l l o

Gewöhnen wir uns an den Index ab 0, genauso wie wir die Zählervariable der Schleife bei 0 starten.

Anwendung

Kombination mit Schleifensyntax

Durch Kombinieren der Zeichenkette mit der Schleifensyntax können verschiedene Prozesse beschrieben werden. Das folgende Programm zählt, wie viele Zeichen "O" in den eingegebenen Zeichen enthalten sind.

s = input()

count = 0
for i in range(len(s)):
    if s[i] == "O":
        count += 1

print(count)

Eingang


LOOOOL

Ausführungsergebnis


4

Sie können in Python auch wie folgt schreiben: Da die for-Anweisung den Anfang der Spalte in der angegebenen Reihenfolge betrachtet, unterstützt sie auch Zeichenfolgen, und im Fall einer Zeichenfolge werden alle Zeichen in der Reihenfolge vom ersten Zeichen an angezeigt.

s = input()

count = 0
for i in s:
    if i == "O":
        count += 1

print(count)

Eingang


LOOOOL

Ausführungsergebnis


4

wichtiger Punkt

Fehler außerhalb des Bereichs

Wenn der Indexwert nicht im richtigen Bereich liegt, tritt ein Laufzeitfehler auf. Das folgende Programm verursacht einen Fehler, weil es versucht, auf eine 5-stellige Zeichenfolge mit dem Namen "Hallo" (gültige Indizes sind "0" bis "4") in der Anzahl der nicht vorhandenen Zeichen in "[10]" zuzugreifen. Machen.

x = "hello"
print(x[10])

Laufzeit Fehler


Traceback (most recent call last):
  File "./Main.py", line 2, in <module>
    print(x[10])
IndexError: string index out of range

Code beenden


256

Ein Fehler, wenn der Index außerhalb des Bereichs liegt, wird durch die Fehlermeldung "Zeichenfolgenindex außerhalb des Bereichs" in Zeile 4 gekennzeichnet.

Umgang mit Zeichen voller Breite

Im Gegensatz zu C ++ kann Python Zeichen in voller Breite verarbeiten.

s = "Hallo"
print(s[0])
print(s[2])

Ausführungsergebnis


Dies
Zu

Problem

Sie finden die Problemstellung unter dem folgenden Link. EX12. Addieren oder subtrahieren

Beispielprogramm


s = input()

#Fügen Sie das Programm hier hinzu

Antwortbeispiel

** Probieren Sie das Problem unbedingt selbst aus, bevor Sie es sehen. ** **. Antwortbeispiel

1.13. Liste (Array)

Kernpunkt

Listen und Zeichenfolgen

Zeichenketten waren eine Funktion zur Behandlung von "Zeichenketten". ** Liste ** ist eine sehr wichtige Funktion, die nicht nur Zeichen, sondern auch verschiedene Datenspalten verarbeiten kann.

C ++ behandelt Arrays (Vektoren), während Python Listen (Listen) behandelt. Die Hauptunterschiede sind wie folgt.

der Unterschied
C++Vektor In einem Array kann sich nur ein Typ befinden
Python-Liste Sie können verschiedene Datentypen in eine Liste aufnehmen

Zeichenfolgen und Listen werden zum Teil auf die gleiche Weise verwendet. Das folgende Programm hat eine Folge von Buchstaben "a", "b", "c", "d" und "25", "100", "64". Wir haben es mit einer Spalte von ganzen Zahlen zu tun.

#String
s = "abcd"  # "a", "b", "c", "d"Geben Sie die Zeichenfolge ein

print(s[0])  #Der Erste"a"Ausgabe

print(len(s))  #Ausgabe 4, die der Länge der Zeichenfolge entspricht


#aufführen
a = [25, 100, 64]  # 25, 100,Ersetzen Sie eine Spalte mit ganzen Zahlen (int) mit dem Namen 64

print(a[0])  #Geben Sie die ersten 25 aus

print(len(a))  #Geben Sie die Listenlänge 3 aus

Ausführungsergebnis


a
4
25
3

Listenvariablen generieren

Die Listenvariable wird wie folgt generiert.

Variablenname auflisten= [Element 1,Element 2, ...]

Jedes Datenelement in der Liste wird als ** Element ** bezeichnet. Wenn Sie "a = [25, 100, 64]" schreiben, wird der Listenvariablen "a" die Datenzeichenfolge "25, 100, 64" zugewiesen.

i-tes Element

Wie Strings können Listen "[i]" verwenden, um auf das $ i $ -te Element zuzugreifen.

Listenvariable[i]

Indizes beginnen ebenfalls bei 0 in der Liste. Im Fall der Listenvariablen "a" mit "a = [25, 100, 64]" ist die Entsprechungstabelle zwischen dem Indexwert und dem Zeichen wie folgt.

Index 0 1 2
Element 25 100 64

Anzahl der Elemente in der Liste

Wie Strings können Listen mit len () die Anzahl der Elemente (Länge) ermitteln.

len(Listenvariable)

Für die Listenvariable "a" mit "a = [25, 100, 64]" ist der Wert von "len (a)" "3".

Füllen Sie die Liste aus

Geben Sie ein leeres Trennzeichen ein

Ich habe "input (). Split ()" beim Empfang von durch Leerzeichen getrennten Eingaben behandelt, aber ich empfange sie tatsächlich als Liste.

a = input().split()
print(a)

Eingang


3 1 4 1 5

Ausführungsergebnis


['3', '1', '4', '1', '5']

Wenn dies das einzige ist, wird es als str-Typ empfangen. Verwenden Sie also map (), um es als int-Typ zu empfangen. Sie können map () verwenden, um eine Typkonvertierung für alle Elemente der Liste durchzuführen.

a = list(map(int, input().split()))
print(a)

Eingang


3 1 4 1 5

Ausführungsergebnis


[3, 1, 4, 1, 5]

Wenn nur "map ()" verwendet wird, handelt es sich um ein Kartenobjekt. Daher wird es in eine Liste konvertiert, indem es in "list ()" eingeschlossen wird.

Zeilenumbrüche eingeben

Möglicherweise möchten Sie auch die folgende durch Zeilenumbrüche getrennte Eingabe erhalten:

3
1
4
1
5

Erstellen Sie in diesem Fall zuerst eine leere Liste und fügen Sie die Elemente der Reihe nach hinzu. Eine leere Liste kann erstellt werden, indem keine Elemente geschrieben werden.

Listenvariable= []  #Leere Liste

Verwenden Sie .append, um der Liste ein Element hinzuzufügen.

Listenvariable.append(Elemente zum Hinzufügen)

Wenn Sie diese mit der for-Anweisung kombinieren, können Sie Eingaben erhalten, die durch Zeilenumbrüche getrennt sind.

n = int(input())  #Wenn die erste Eingabezeile die Anzahl der Elemente ist

a = []
for i in range(n):
    a.append(int(input()))

print(a)

Eingabe (1. Zeile ist die Anzahl der Elemente)


5
3
1
4
1
5

Ausführungsergebnis


[3, 1, 4, 1, 5]

Listenverwendung

Durch Kombinieren der Liste und der for-Anweisung können Sie ein Programm schreiben, das eine große Datenmenge verarbeitet. Siehe folgendes Beispiel.

Beispiel

Die Problemstellung entnehmen Sie bitte der Hauptfamilie.

Antwortbeispiel

Wenn $ N $ klein ist, ist es möglich, dieses Problem nur mit Variablen vom Typ int zu lösen, ohne eine Liste zu verwenden. Wenn $ N $ jedoch groß ist, kann das Schreiben ohne Liste sehr schwierig sein. Wenn beispielsweise $ N = 1000 $ ist, müssen Sie 1000 Variablen deklarieren.

Mit Listen und for-Anweisungen können Sie Prozesse unabhängig von der Größe von $ N $ präzise schreiben.

n = int(input())

#Erhalten Sie mathematische und englische Score-Daten
math = list(map(int, input().split()))
english = list(map(int, input().split()))

#Gesamtpunktzahl ausgeben
for i in range(n):
    print(math[i] + english[i])

wichtiger Punkt

Listen führen wie Zeichenfolgen zu einem Fehler, wenn die tiefgestellten Werte nicht im richtigen Bereich liegen.

Das folgende Programm versucht, mit "[10]" auf ein nicht vorhandenes Element mit einer Liste von drei Elementen "[1, 2, 3]" zuzugreifen (gültige Indizes sind "0" bis "2"). Ein Fehler wird auftreten.

a = [1, 2, 3]
print(a[10])

Laufzeit Fehler


Traceback (most recent call last):
  File "./Main.py", line 2, in <module>
    print(a[10])
IndexError: list index out of range

Code beenden


256

Wie bei der Zeichenfolge wird in der vierten Zeile die Fehlermeldung "IndexError: Listenindex außerhalb des Bereichs" angezeigt.

Detaillierte Geschichte

Es ist eine kleine Geschichte, also können Sie sie überspringen und das Problem lösen.

Index von hinten

In Python können Sie es von hinten sehen, indem Sie im Index ein Minus verwenden.

a = [1, 2, 3, 4, 5]

print(a[-1])  #Zuerst von hinten
print(a[-3])  #Dritter von hinten

Ausführungsergebnis


5
3

Von hinten betrachtet zählen Sie den Rücken als "-1", den zweiten von hinten als "-2" und den dritten als "-3".

Scheibe

In Python-Listen gibt es eine Operation namens ** Slice **, um einen Teil der Liste abzurufen. Scheiben werden wie folgt verwendet.

Listenvariable[Index des Startpunktes:Index des Endpunktes]

Ausgehend vom Index des Startpunkts wird die Liste bis zu dem vor dem Index des Endpunkts abgerufen. Für die Listenvariable "a" mit "a = [1, 2, 3, 4, 5]" wird "a [1: 3]" zu "[2, 3]". Wenn Sie den Index weglassen, erhalten Sie vom Anfang für den Startpunkt bis zum Ende für den Endpunkt.

Sie können auch die Schritte angeben (wie oft Sie das Slice sehen möchten).

Listenvariable[Index des Startpunktes:Index des Endpunktes:Schritt]

Wenn Sie beispielsweise "2" für den Schritt angeben, können Sie das Element erhalten, indem Sie ein Element überspringen.

a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print(a[::2])  #Überspringen Sie eine von Anfang an → gerade Zahl
print(a[1::2])  #Seltsame th

Ausführungsergebnis


[0, 2, 4, 6, 8]
[1, 3, 5, 7, 9]

Problem

Sie finden die Problemstellung unter dem folgenden Link. EX13. Unterschied zur Durchschnittspunktzahl

Beispielprogramm


n = int(input())

#Fügen Sie das Programm hier hinzu

Antwortbeispiel

** Probieren Sie das Problem unbedingt selbst aus, bevor Sie es sehen. ** ** ** Antwortbeispiel

1.14. Integrierte Standardbibliotheksfunktionen (STL-Funktionen)

Kernpunkt

Funktion min(a, b) max(a, b)
Funktion Gibt den kleineren Wert von a und b zurück(3 oder mehr möglich) Gibt den größeren Wert von a und b zurück(3 oder mehr möglich)
Funktion sorted(list) reversed(list)
Funktion Sortieren Sie die Liste (sortieren Sie die Elemente in aufsteigender Reihenfolge) Kehren Sie die Reihenfolge der Elemente in der Liste um

Eingebaute Funktionen

** Funktionen ** erleichtern die Verwendung der Funktionen eines Programms.

Verwendung der Funktion

Nehmen wir als Beispiel "ein Programm, das den kleineren der Werte zweier Variablen ausgibt".

Wenn Sie ohne Verwendung einer Funktion schreiben, sieht es folgendermaßen aus:

a = 10
b = 5

if a < b:
    answer = a
else:
    answer = b

print(answer)

Ausführungsergebnis


5

Wenn Sie die "min-Funktion" verwenden, können Sie wie folgt schreiben.

a = 10
b = 5

answer = min(a, b)  #min Funktion

print(answer)

Ausführungsergebnis


5

Das im Programm angezeigte min ist eine Funktion, die den kleineren der beiden Werte findet. Da der kleinere Wert von "a" und "b" als "Berechnungsergebnis" von "min (a, b)" erhalten werden kann, wird er der Variablen "Antwort" zugewiesen.

Was ist eine Standardbibliothek?

Zusätzlich zu min hat Python verschiedene Funktionen, und Sie können viele Funktionen verwenden, ohne ein eigenes Programm zu schreiben. Eine von Python bereitgestellte Sammlung von Funktionen usw. wird als ** Standardbibliothek ** bezeichnet. Die in der Standardbibliothek bereitgestellten Funktionen werden als ** integrierte Funktionen ** bezeichnet.

Sie können auch eigene Funktionen erstellen. Dies wird in "1.15. Funktionen" erläutert.

So rufen Sie eine Funktion auf

Die Verwendung einer Funktion wird als ** Funktionsaufruf ** bezeichnet.

Die Notation des Funktionsaufrufs lautet wie folgt.

Funktionsname(Argument 1,Argument 2, ...)

** Argument ** ist der an die Funktion übergebene Wert. In "min (a, b)" entsprechen die Variable a und die Variable b ihr. Die min-Funktion hatte zwei Argumente, aber die Anzahl der Argumente hängt von der Funktion ab.

Der Wert des Berechnungsergebnisses der Funktion heißt ** Rückgabewert (Rückgabewert) ** oder ** Rückgabewert (Rückgabewert) **. In answer = min (a, b) wird der Rückgabewert der Funktion min der Variablen antwort zugewiesen.

Argument und Rückgabetyp

Die Typregeln für Argumente und Rückgabewerte werden von der Funktion festgelegt. Wenn Sie einen Fehler machen, tritt ein Fehler auf.

Das folgende Programm versucht, int- und string-Typen als Argumente an die min-Funktion zu übergeben, und es wird eine Fehlermeldung angezeigt.

s = "hello"

a = min(10, s)

print(a)

Error


Traceback (most recent call last):
  File "./Main.py", line 3, in <module>
    a = min(10, s)
TypeError: unorderable types: str() < int()

Funktionsbeispiel

Ich werde zwei der eingebauten Funktionen vorstellen. ** Sie müssen sich diese nicht merken **, aber es ist wichtig, sich zu erinnern und nachzuschlagen: "Ich glaube, dieser Prozess wurde mit einer eingebauten Funktion durchgeführt."

min Funktion

Die min-Funktion gibt das kleinste der Argumente zurück. Es werden auch 3 oder mehr Argumente unterstützt.

answer = min(10, 5)

print(answer)  # 5

Ausführungsergebnis


5

Argument und Rückgabetyp

Der Typ des Arguments und der Rückgabewert können ein beliebiger numerischer Typ (oder ein Typ, dessen Größe verglichen werden kann) sein, z. B. "int" oder "float". Sie können auch eine Liste als Argument verwenden.

answer = min(1.5, 3.1)

print(answer)  # 1.5

Ausführungsergebnis


1.5

Sie können auch den Int-Typ und den Float-Typ vergleichen.

a = 1.5
print("a:", type(a))

b = 10
print("b:", type(b))

answer = min(a, b)

print(answer)  # 1.5

Ausführungsergebnis


a: <class 'float'>
b: <class 'int'>
1.5

max Funktion

Die Funktion max gibt das größte der Argumente zurück. Es werden auch 3 oder mehr Argumente unterstützt.

answer = max(10, 5)

print(answer)  # 10

Ausführungsergebnis


10

Argument und Rückgabetyp

Die Arten von Argumenten und Rückgabewerten sind die gleichen wie min.

Funktion, die eine Liste als Argument verwendet

Hier sind zwei integrierte Funktionen, die eine Liste als Argument übergeben.

umgekehrte Funktion

Mit der Umkehrfunktion können Sie die Reihenfolge der Elemente in der Liste umkehren.

a = [1, 5, 3]

a = list(reversed(a))  # [3, 5, 1]

print(a)

Ausführungsergebnis


[3, 5, 1]

Da der Iterator zurückgegeben wird, konvertiere ich ihn mit list () in eine Liste.

Sie können eine Liste auch in umgekehrter Reihenfolge erhalten, indem Sie Slices verwenden.

a = [1, 5, 3]

a = a[::-1]

print(a)

Ausführungsergebnis


[3, 5, 1]

sortierte Funktion

Das Sortieren der Datenspalten in der Reihenfolge wird als ** Sortieren ** bezeichnet. Mit der sortierten Funktion können Sie die Elemente der Liste in aufsteigender Reihenfolge sortieren.

a = [2, 5, 2, 1]

a = sorted(a)  # [1, 2, 2, 5]

print(a)

Ausführungsergebnis


[1, 2, 2, 5]

Die sortierte Funktion kann auch in absteigender Reihenfolge sortiert werden, indem als zweites Argument "reverse = True" angegeben wird.

a = [2, 5, 2, 1]

a = sorted(a, reverse=True)  # [5, 2, 2, 1]

print(a)

Ausführungsergebnis


[5, 2, 2, 1]

Summenfunktion

Die Summenfunktion gibt die Summe aller Elemente in der Liste der Argumente zurück.

a = [2, 5, 2, 1]

print(sum(a))

Ausführungsergebnis


10

Problem

Sie finden die Problemstellung unter dem folgenden Link. EX14. Höhenunterschied zwischen den drei Brüdern

Beispielprogramm


a, b, c = map(int, input().split())

#Fügen Sie das Programm hier hinzu

Antwortbeispiel

** Probieren Sie das Problem unbedingt selbst aus, bevor Sie es sehen. ** **. Antwortbeispiel

1.15. Funktionen

Kernpunkt

def Funktionsname(Name des Arguments 1,Name des Arguments 2, ...):
wird bearbeitet

Funktion

Das Erstellen einer Funktion wird als ** Definieren ** einer Funktion bezeichnet.

Das folgende Beispiel definiert eine Funktion my_min, die eine ähnliche Funktionalität wie die integrierte min-Funktion hat.

#Funktionsdefinition
def my_min(x, y):
    if x < y:
        return x
    else:
        return y


answer = my_min(10, 5)
print(answer)

Ausführungsergebnis


5

Funktionsverhalten

In der Kopffamilie befindet sich eine Folie, die die Funktionsweise des gesamten Programms erklärt.

Funktionsdefinition

Die Funktion wird vor der Zeile definiert, die die Funktion aufruft.

Die Notation der Funktionsdefinition lautet wie folgt.

def Funktionsname(Name des Arguments 1,Name des Arguments 2, ...):
wird bearbeitet

Wie wir im vorherigen Abschnitt gesehen haben, ist das Argument der "an die Funktion zu übergebende Wert" und der Rückgabewert der "Wert des Ergebnisses der Funktion".

Die Funktion my_min akzeptiert zwei Argumente, daher sieht die Definition folgendermaßen aus:

def my_min(x, y):
    

Die aufrufende Methode ist dieselbe wie die integrierte Funktion. Wenn Sie es wie folgt aufrufen, wird dem Argument "x" "10" und dem Argument "y" "5" zugewiesen.

my_min(10, 5)

Rückgabewert angeben

Der Rückgabewert der Funktion wird durch die ** return-Anweisung ** angegeben.

return Rückgabewert

Die Funktion my_min gibt das kleinere der beiden Argumente "x" und "y" zurück. Schreiben Sie also:

if x < y:
    return x
else:
    return y

Funktionen ohne Rückgabewert

Möglicherweise gibt es keinen Rückgabewert für die Funktion. In diesem Fall muss keine return-Anweisung geschrieben werden.

def hello(text):
    print("Hello, " + text)


hello("Tom")
hello("Python")

Ausführungsergebnis


Hello, Tom
Hello, Python

Funktionen ohne Argumente

Wenn Sie keine Funktionsargumente benötigen, schreiben Sie einfach () in die Definition und rufen Sie auf.

def int_input():
    x = int(input())
    return x


num = int_input()
print(num, type(num))

Eingang


10

Ausführungsergebnis


10 <class 'int'>

Warum die Funktion selbst definieren?

Bitte beziehen Sie sich auf die Oberfamilie.

wichtiger Punkt

Verhalten der return-Anweisung

Die Verarbeitung der Funktion endet, wenn die Verarbeitung die return-Anweisung erreicht.

Es spielt keine Rolle, ob eine Funktion mehrere return-Anweisungen enthält. Beachten Sie jedoch, dass die nach der return-Anweisung geschriebene Verarbeitung nicht ausgeführt wird.

Im folgenden Programm wird "return" in die Zeile nach der Ausgabe von "Hello" geschrieben, sodass keine weitere Verarbeitung durchgeführt wird.

def hello():
    print("Hello, ", end="")
    return  #Laufen Sie nur bis zu dieser Linie

    print("world!")
    return


hello()

Ausführungsergebnis


Hello, 

Argumente werden kopiert

Wie beim Zuweisen von Werten zu anderen Variablen wird der an das Argument übergebene Wert grundsätzlich kopiert.

Die Funktion add5 im folgenden Programm fügt dem Argument in der Funktion "5" hinzu, aber der Wert der aufrufenden Variablen num ändert sich nicht.

def add5(x):
    x += 5
    print(x)


num = 10
add5(num)

print(num)

Ausführungsergebnis


15
10

Bereich, den die Funktion aufrufen kann

Funktionen können nur nach der deklarierten Zeile aufgerufen werden.

Im folgenden Programm tritt der Fehler auf, weil die Hallo-Funktion vor der Zeile aufgerufen wird, die die Hallo-Funktion definiert.

hello()


def hello():
    print("hello!")

Error


Traceback (most recent call last):
  File "./Main.py", line 1, in <module>
    hello()
NameError: name 'hello' is not defined

Da es in der Reihenfolge von oben gelesen und ausgeführt wird, wird zum Zeitpunkt der ersten Zeile der Fehler "Hallo-Funktion ist noch nicht definiert" angezeigt.

Problem

Sie finden die Problemstellung unter dem folgenden Link. EX15. Geschenk für drei Brüder

Programm geschrieben von Herrn A.


#Eine Funktion, die die Gesamtpunktzahl aus einer Liste berechnet und zurückgibt, die die Punktzahl eines Tests darstellt
#Argument punktet: scores[i]Enthält die Punktzahl des i-ten Tests
#Rückgabewert:Gesamtpunktzahl eines Tests
def sum_scores(scores):
    #Fügen Sie das Programm hier hinzu


#Eine Funktion, die das Geschenkbudget aus den Gesamtpunkten von drei Personen berechnet und ausgibt
#Argument Summe_a:Gesamtpunktzahl des Tests von Herrn A.
#Argument Summe_b:Gesamtpunktzahl des Tests von Herrn B.
#Argument Summe_c:Gesamtpunktzahl des Tests von Herrn C.
#Rückgabewert:Keiner
def output(sum_a, sum_b, sum_c):
    #Fügen Sie das Programm hier hinzu


# ---------------------
#Ändern Sie nicht von hier
# ---------------------

#Eine Funktion, die Eingaben mit einer durch Leerzeichen getrennten Ganzzahlzeile entgegennimmt, diese in eine Liste einfügt und zurückgibt.
#Argumente:Einzeilige, durch Leerzeichen getrennte Eingabe
#Rückgabewert:Liste der empfangenen Eingaben
def list_int_input(s):
    a = list(map(int, s.split()))
    return a


#Erhalte N Fächer
n = int(input())

#Erhalten Sie Punkte für jeden Test
a = list_int_input(input())
b = list_int_input(input())
c = list_int_input(input())

#Geschenkbudget ausgeben
output(sum_scores(a), sum_scores(b), sum_scores(c))

Antwortbeispiel

** Probieren Sie das Problem unbedingt selbst aus, bevor Sie es sehen. ** **. Antwortbeispiel

abschließend

Dies ist das Ende von Kapitel 1. Dieser Artikel hat nur Kapitel 1 von APG4b behandelt. Wenn ich Lust dazu habe, werde ich über Kapitel 2 und darüber hinaus schreiben.

Wie ich am Anfang geschrieben habe, werde ich diesen Artikel löschen, wenn es ein Problem gibt.

Recommended Posts

Einführung in Python (Python-Version APG4b)
[AWS SAM] Einführung in die Python-Version
Einführung in die Python-Sprache
Einführung in OpenCV (Python) - (2)
Einführung in die serielle Kommunikation [Python]
[Einführung in Python] <Liste> [Bearbeiten: 22.02.2020]
So ändern Sie die Python-Version
Eine Einführung in die Python-Programmierung
Einführung in Python For, While
[Einführung in die Udemy Python3 + -Anwendung] 58. Lambda
[Einführung in die Udemy Python3 + -Anwendung] 31. Kommentar
Einführung in die Python Numerical Calculation Library NumPy
Trainieren! !! Einführung in Python Type (Type Hints)
[Einführung in Python3 Tag 1] Programmierung und Python
[Einführung in Python] <numpy ndarray> [edit: 2020/02/22]
[Einführung in die Udemy Python3 + -Anwendung] 57. Decorator
Einführung in Python Hands On Teil 1
[Einführung in Python3 Tag 13] Kapitel 7 Zeichenfolgen (7.1-7.1.1.1)
[Einführung in Python] So analysieren Sie JSON
[Einführung in die Udemy Python3 + -Anwendung] 56. Abschluss
[Einführung in Python3 Tag 14] Kapitel 7 Zeichenfolgen (7.1.1.1 bis 7.1.1.4)
So erhalten Sie die Python-Version
Einführung in Protobuf-c (C-Sprache ⇔ Python)
[Einführung in die Udemy Python3 + -Anwendung] 59. Generator
[Einführung in Python3 Tag 15] Kapitel 7 Zeichenfolgen (7.1.2-7.1.2.2)
[Einführung in Python] Verwenden wir Pandas
[Einführung in Python] Verwenden wir Pandas
[Einführung in die Udemy Python3 + -Anwendung] Zusammenfassung
Einführung in die Bildanalyse opencv python
[Einführung in Python] Verwenden wir Pandas
Erste Schritte mit Python für Nicht-Ingenieure
Python-Version, um nicht verwendete Ports zu erhalten
Einführung in Python Django (2) Mac Edition
[Einführung in Python3 Tag 21] Kapitel 10 System (10.1 bis 10.5)
[Python Tutorial] Eine einfache Einführung in Python
Einführung in MQTT (Einführung)
Einführung in Scrapy (1)
[Einführung in die Udemy Python3 + -Anwendung] 18. Listenmethode
[Einführung in die Udemy Python3 + -Anwendung] 63. Notation zur Einbeziehung des Generators
Einführung in Scrapy (3)
Auf Python 2.7.9 aktualisiert
[Einführung in die Udemy Python3 + -Anwendung] 28. Kollektiver Typ
[Einführung in Python] Wie verwende ich eine Klasse in Python?
Erste Schritte mit Supervisor
Einführung in Tkinter 1: Einführung
[Einführung in die Udemy Python3 + -Anwendung] 25. Wörterbuchmethode
[Einführung in die Udemy Python3 + -Anwendung] 33. if-Anweisung
[Einführung in die Udemy Python3 + -Anwendung] 13. Zeichenmethode
[Einführung in die Udemy Python3 + -Anwendung] 48. Funktionsdefinition
Python Bit Arithmetic Super Einführung
[Einführung in die Udemy Python3 + -Anwendung] 10. Numerischer Wert
Einführung in das Auffüllen von Python-Bildern Auffüllen von Bildern mit ImageDataGenerator
Web-WF Python Tornado Teil 3 (Einführung in Openpyexcel)
[Einführung in die Udemy Python3 + -Anwendung] 21. Taple-Typ
Einführung in PyQt
[Einführung in die Udemy Python3 + -Anwendung] 45. Aufzählungsfunktion
Einführung in Scrapy (2)
[Einführung in die Udemy Python3 + -Anwendung] 41. Eingabefunktion
[Einführung in Python3 Tag 19] Kapitel 8 Datenziele (8.4-8.5)
[Einführung in die Udemy Python3 + -Anwendung] 17. Listenoperation