Einführung
In diesem Abschnitt wird die Erstellung Ihres ersten Programms, das Ausführen des Interpreters und einige grundlegende Debugging-Methoden behandelt.
This tutorial is from open-source community. Access the source code
💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken
In diesem Abschnitt wird die Erstellung Ihres ersten Programms, das Ausführen des Interpreters und einige grundlegende Debugging-Methoden behandelt.
Python-Programme laufen immer innerhalb eines Interpreters.
Der Interpreter ist eine "konsolenbasierte" Anwendung, die normalerweise von einer Befehlsshell ausgeführt wird.
python3
Python 3.6.1 (v3.6.1:69c0db5050, Mar 21 2017, 01:21:04)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
Erfahrene Programmierer haben normalerweise keine Probleme, den Interpreter auf diese Weise zu verwenden, aber es ist für Einsteiger nicht so nutzerfreundlich. Möglicherweise verwenden Sie eine Umgebung, die eine andere Schnittstelle zu Python bietet. Das ist in Ordnung, aber das Lernen, wie man die Python-Konsole ausführt, ist immer noch eine nützliche Fähigkeit, die man kennen sollte.
Wenn Sie Python starten, erhalten Sie einen interaktiven Modus, in dem Sie experimentieren können.
Wenn Sie beginnen, Anweisungen einzugeben, werden diese sofort ausgeführt. Es gibt keinen Editier-/Kompilier-/Ausführungs-/Debug-Zyklus.
>>> print('hello world')
hello world
>>> 37*42
1554
>>> for i in range(5):
... print(i)
...
0
1
2
3
4
>>>
Dieser sogenannte read-eval-print-loop (oder REPL) ist sehr nützlich für das Debugging und die Exploration.
STOP: Wenn Sie nicht herausfinden können, wie Sie mit Python interagieren sollen, halten Sie an, was Sie tun, und finden Sie heraus, wie es geht. Wenn Sie eine IDE verwenden, kann es hinter einer Menüoption oder einem anderen Fenster versteckt sein. Viele Teile dieses Kurses gehen davon aus, dass Sie mit dem Interpreter interagieren können.
Lassen Sie uns die Elemente des REPL genauer betrachten:
>>>
ist der Interpreter-Prompt zum Starten einer neuen Anweisung....
ist der Interpreter-Prompt zum Fortsetzen einer Anweisung. Geben Sie eine leere Zeile ein, um das Tippen zu beenden und das Eingetippte auszuführen.Der ...
-Prompt kann je nach Umgebung angezeigt werden oder auch nicht. Für diesen Kurs wird er als Leerzeichen dargestellt, um das Kopieren/Einfügen von Codesamples zu erleichtern.
Das Unterstrich-Zeichen _
enthält das letzte Ergebnis.
>>> 37 * 42
1554
>>> _ * 2
3108
>>> _ + 50
3158
>>>
Dies gilt nur im interaktiven Modus. Sie verwenden _
niemals in einem Programm.
Programme werden in .py
-Dateien gespeichert.
## hello.py
print('hello world')
Sie können eine hello.py
-Datei im Verzeichnis /home/labex/project
mit Ihrem Lieblings-Texteditor erstellen.
Um ein Programm auszuführen, führen Sie es im Terminal mit dem Befehl python
aus. Beispielsweise in der Kommandozeile von Unix:
$ python hello.py
hello world
bash %
Oder von der Windows-Shell:
C:\SomeFolder>hello.py
hello world
C:\SomeFolder>c:\python36\python hello.py
hello world
Hinweis: Unter Windows müssen Sie möglicherweise den vollen Pfad zum Python-Interpreter angeben, wie z. B. c:\python36\python
. Wenn Python jedoch auf die übliche Weise installiert ist, können Sie möglicherweise einfach den Namen des Programms eingeben, wie z. B. hello.py
.
Lösen wir folgendes Problem:
Eines Morgens gehst du hinaus und legst einen Dollar-Schein auf den Bürgersteig neben dem Sears Tower in Chicago. Danach gehst du jeden Tag hinaus und verdoppelt die Anzahl der Scheine. Wie lange dauert es, bis der Stapel von Scheinen die Höhe des Turms überschreitet?
Hier ist eine Lösung, um eine sears.py
-Datei im Verzeichnis /home/labex/project
zu erstellen:
## sears.py
bill_thickness = 0.11 * 0.001 ## Meter (0.11 mm)
sears_height = 442 ## Höhe (Meter)
num_bills = 1
day = 1
while num_bills * bill_thickness < sears_height:
print(day, num_bills, num_bills * bill_thickness)
day = day + 1
num_bills = num_bills * 2
print('Anzahl der Tage', day)
print('Anzahl der Scheine', num_bills)
print('Endhöhe', num_bills * bill_thickness)
Wenn Sie es ausführen, erhalten Sie die folgende Ausgabe:
$ python3 sears.py
1 1 0.00011
2 2 0.00022
3 4 0.00044
4 8 0.00088
5 16 0.00176
6 32 0.00352
...
21 1048576 115.34336
22 2097152 230.68672
Anzahl der Tage 23
Anzahl der Scheine 4194304
Endhöhe 461.37344
Anhand dieses Programms können Sie eine Reihe wichtiger Kernkonzepte von Python lernen.
Ein Python-Programm ist eine Sequenz von Anweisungen:
a = 3 + 4
b = a * 2
print(b)
Jede Anweisung wird durch eine neue Zeile beendet. Die Anweisungen werden nacheinander ausgeführt, bis der Code am Ende der Datei erreicht ist.
Kommentare sind Text, der nicht ausgeführt wird.
a = 3 + 4
## Dies ist ein Kommentar
b = a * 2
print(b)
Kommentare werden durch #
gekennzeichnet und gehen bis zum Ende der Zeile.
Eine Variable ist ein Name für einen Wert. Sie können Buchstaben (Klein- und Großbuchstaben) von a bis z verwenden. Auch das Unterstrich-Zeichen _
ist erlaubt. Zahlen können ebenfalls Teil des Namens einer Variable sein, aber nicht als erstes Zeichen.
height = 442 ## gültig
_height = 442 ## gültig
height2 = 442 ## gültig
2height = 442 ## ungültig
Variablen müssen nicht mit dem Typ des Werts deklariert werden. Der Typ ist mit dem Wert auf der rechten Seite assoziiert, nicht mit dem Namen der Variable.
height = 442 ## Eine Ganzzahl
height = 442.0 ## Gleitkommazahl
height = 'Really tall' ## Ein String
Python ist dynamisch typisiert. Der wahrgenommene "Typ" einer Variable kann sich während der Ausführung eines Programms ändern, je nachdem, welchen Wert ihr aktuell zugewiesen ist.
Python ist groß-/kleinschreibungssensibel. Groß- und Kleinbuchstaben werden als unterschiedliche Zeichen betrachtet. Dies sind alle verschiedene Variablen:
name = 'Jake'
Name = 'Elwood'
NAME = 'Guido'
Sprachanweisungen sind immer in Kleinbuchstaben geschrieben.
while x < 0: ## OK
WHILE x < 0: ## FEHLER
Die while
-Anweisung führt eine Schleife aus.
while num_bills * bill_thickness < sears_height:
print(day, num_bills, num_bills * bill_thickness)
day = day + 1
num_bills = num_bills * 2
print('Anzahl der Tage', day)
Die eingerückten Anweisungen unterhalb der while
werden solange ausgeführt, wie der Ausdruck nach der while
true
ist.
Die Einrückung wird verwendet, um Gruppen von Anweisungen anzuzeigen, die zusammengehören. Betrachten Sie das vorherige Beispiel:
while num_bills * bill_thickness < sears_height:
print(day, num_bills, num_bills * bill_thickness)
day = day + 1
num_bills = num_bills * 2
print('Anzahl der Tage', day)
Die Einrückung gruppiert die folgenden Anweisungen zusammen als die wiederholenden Operationen:
print(day, num_bills, num_bills * bill_thickness)
day = day + 1
num_bills = num_bills * 2
Da die print()
-Anweisung am Ende nicht eingerückt ist, gehört sie nicht zur Schleife. Die Leerzeile dient nur der Lesbarkeit. Sie hat keinen Einfluss auf die Ausführung.
Python erfordert lediglich, dass die Einrückung innerhalb desselben Blocks konsistent ist. Beispielsweise ist dies ein Fehler:
while num_bills * bill_thickness < sears_height:
print(day, num_bills, num_bills * bill_thickness)
day = day + 1 ## FEHLER
num_bills = num_bills * 2
Die if
-Anweisung wird verwendet, um eine bedingte Anweisung auszuführen:
if a > b:
print('Computer sagt nein')
else:
print('Computer sagt ja')
Sie können mehrere Bedingungen überprüfen, indem Sie zusätzliche Prüfungen mit elif
hinzufügen.
if a > b:
print('Computer sagt nein')
elif a == b:
print('Computer sagt ja')
else:
print('Computer sagt vielleicht')
Die print
-Funktion erzeugt eine einzelne Zeile von Text mit den übergebenen Werten.
print('Hello world!') ## Gibt den Text 'Hello world!' aus
Sie können Variablen verwenden. Der ausgegebene Text wird der Wert der Variable sein, nicht der Name.
x = 100
print(x) ## Gibt den Text '100' aus
Wenn Sie mehr als einen Wert an print
übergeben, werden sie durch Leerzeichen getrennt.
name = 'Jake'
print('Mein Name ist', name) ## Gibt den Text 'Mein Name ist Jake' aus
print()
fügt immer ein Zeilenumbruch am Ende hinzu.
print('Hello')
print('Mein Name ist', 'Jake')
Dies gibt aus:
Hello
Mein Name ist Jake
Der zusätzliche Zeilenumbruch kann unterdrückt werden:
print('Hello', end=' ')
print('Mein Name ist', 'Jake')
Dieser Code gibt jetzt aus:
Hello Mein Name ist Jake
Um eine Zeile von eingegebener Benutzereingabe zu lesen, verwenden Sie die input()
-Funktion:
name = input('Geben Sie Ihren Namen ein:')
print('Ihr Name ist', name)
input
gibt eine Aufforderung an den Benutzer aus und gibt ihre Antwort zurück. Dies ist für kleine Programme, Lernübungen oder einfaches Debugging nützlich. Es wird nicht weit verbreitet in echten Programmen verwendet.
Manchmal müssen Sie einen leeren Codeblock angeben. Dazu wird das Schlüsselwort pass
verwendet.
if a > b:
pass
else:
print('Computer sagt falsch')
Dies wird auch als "keine Aktion" (no-op) -Anweisung bezeichnet. Sie tut nichts. Sie dient als Platzhalter für Anweisungen, die möglicherweise später hinzugefügt werden.
Dies ist die erste Reihe von Übungen, bei denen Sie Python-Dateien erstellen und ausführen müssen. Ab diesem Zeitpunkt wird angenommen, dass Sie Dateien im Verzeichnis ~/project/
bearbeiten. Um Ihnen zu helfen, den richtigen Ort zu finden, wurden eine Reihe von leeren Startdateien mit den entsprechenden Dateinamen erstellt. Suchen Sie nach der Datei bounce.py
, die in der ersten Übung verwendet wird.
Ein Gummiball wird von einer Höhe von 100 Metern fallen gelassen und springt jedes Mal, wenn er den Boden trifft, auf 3/5 der Höhe zurück, von der er gefallen ist. Schreiben Sie ein Programm bounce.py
, das eine Tabelle druckt, die die Höhe der ersten 10 Bounces zeigt.
Hier ist eine Lösung:
## bounce.py
height = 100
bounce = 1
while bounce <= 10:
height = height * (3 / 5)
print(bounce, round(height, 4))
bounce += 1
Ihr Programm sollte eine Tabelle erzeugen, die ungefähr so aussieht:
1 60.0
2 36.0
3 21.599999999999998
4 12.959999999999999
5 7.775999999999999
6 4.6655999999999995
7 2.7993599999999996
8 1.6796159999999998
9 1.0077695999999998
10 0.6046617599999998
Hinweis: Sie können die Ausgabe etwas aufräumen, wenn Sie die round()-Funktion verwenden. Versuchen Sie, die Ausgabe auf 4 Stellen zu runden.
1 60.0
2 36.0
3 21.6
4 12.96
5 7.776
6 4.6656
7 2.7994
8 1.6796
9 1.0078
10 0.6047
Der folgende Codeausschnitt enthält Code aus dem Sears Tower - Problem. Es hat auch einen Fehler darin.
## sears.py
bill_thickness = 0.11 * 0.001 ## Meter (0.11 mm)
sears_height = 442 ## Höhe (Meter)
num_bills = 1
day = 1
while num_bills * bill_thickness < sears_height:
print(day, num_bills, num_bills * bill_thickness)
day = days + 1
num_bills = num_bills * 2
print('Anzahl der Tage', day)
print('Anzahl der Scheine', num_bills)
print('Endhöhe', num_bills * bill_thickness)
Kopieren Sie und fügen Sie den obigen Code in ein neues Programm namens sears.py
ein. Wenn Sie den Code ausführen, erhalten Sie eine Fehlermeldung, die das Programm zum Abstürzen bringt, wie folgt:
Traceback (most recent call last):
File "sears.py", line 10, in <module>
day = days + 1
NameError: name 'days' is not defined
Das Lesen von Fehlermeldungen ist ein wichtiger Teil von Python - Code. Wenn Ihr Programm abstürzt, ist die letzte Zeile der Traceback - Meldung der tatsächliche Grund, warum das Programm abstürzt. Darunter sollten Sie einen Codeausschnitt, dann eine Dateiname - und Zeilennummer - Kennung sehen.
Herzlichen Glückwunsch! Sie haben das Labor "A First Program" abgeschlossen. Sie können in LabEx weitere Labore absolvieren, um Ihre Fähigkeiten zu verbessern.