You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 020-Projekt_Taschenrechner/010-Python_REPL.md
+144-1Lines changed: 144 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,149 @@ numbering:
5
5
title: true
6
6
figure:
7
7
template: Abb. %s
8
+
jupyter:
9
+
jupytext:
10
+
text_representation:
11
+
extension: .md
12
+
format_name: markdown
13
+
format_version: "1.3"
14
+
jupytext_version: 1.17.3
15
+
kernelspec:
16
+
display_name: Selbstlernkurs_Python
17
+
language: python
18
+
name: python3
8
19
---
9
20
10
-
# Das Programm `python3` - **R**ead-**E**val-**P**rint-**L**oop
21
+
# Die Read-Eval-Print-Loop (REPL)
22
+
23
+
Im Kapitel zur Installation haben Sie einmal `python3 --version` im Terminal
24
+
ausgeführt um sicherzustellen, dass Sie ein aktuelles und funktionierendes
25
+
Python installiert haben. Nun machen Sie die ersten Schritte mit Python Code.
26
+
27
+
## Starten der Python REPL
28
+
29
+
`````{margin}
30
+
````{admonition} Wiederholung
31
+
:class: seealso
32
+
Im gesamten Kurs werden Eingaben im Terminal wie folgt dargestellt:
33
+
```console
34
+
$ echo "Hallo Welt"
35
+
Hallo Welt
36
+
```
37
+
Dabei beginnen Zeilen mit einem Terminal-Befehl mit `$ ` und darauffolgende Zeilen bis zum nächsten `$ ` die Ausgabe des Befehls. Wenn Sie die Schritte nachvollziehen, geben Sie den Befehl selbst ein und 'starten' diesen mit `<Enter>`.
38
+
39
+
Achten Sie darauf, dass Sie ggf. Dateipfade anpassen müssen. Mehr dazu im [Exkurs: Unix](/030-Exkurs_Unix/Einleitung.md).
40
+
````
41
+
`````
42
+
43
+
Führen Sie das Programm `python3` im Terminal aus, so startet es in die REPL.
44
+
45
+
```console
46
+
$ python3
47
+
Python 3.13.7 (main, Aug 14 2025, 11:12:11) [Clang 17.0.0 (clang-1700.0.13.3)] on darwin
48
+
Type "help", "copyright", "credits" or "license" for more information.
49
+
>>>
50
+
```
51
+
52
+
Um die REPL zu verlassen, tippen Sie `quit()` oder nutzen Sie (in Unix-basierten Betriebssysteme) die Tastekombination `<Strg-D>`.
53
+
54
+
## Ihr erstes Python
55
+
56
+
Die REPL verhält sich ähnlich zum Terminal, nur dass nicht Befehle nach (typischerweise) einem `$ ` eingegeben werden, sondern dass Python-Code nach einem `>>> ` eingegeben wird.
57
+
58
+
Nachfolgend finden Sie ein paar Beispiele. Probieren Sie diese selbst aus und ändern Sie sie dann ab.
59
+
60
+
```python-repl
61
+
>>> 2+2
62
+
4
63
+
```
64
+
65
+
```python-repl
66
+
>>> "Hallo, Welt!"
67
+
'Hallo, Welt!"
68
+
```
69
+
70
+
```python-repl
71
+
>>> print("Hallo, Welt!")
72
+
Hallo, Welt!
73
+
```
74
+
75
+
Ist der Python-Code noch nicht vollständig, so verändert sich der Prompt zu `... `.
76
+
77
+
```python-repl
78
+
>>> print(
79
+
...
80
+
... "Hallo"
81
+
... )
82
+
Hallo
83
+
```
84
+
85
+
## Die Struktur einer REPL
86
+
87
+
Eine REPL ist ein Programm, welches:
88
+
89
+
1._**R**ead_: Einen Befehl oder hier ein Stück Python-Code einliest.
90
+
2._**E**val_: Dann den Code ausführt.
91
+
3._**P**rint_: Das Ergebnis des ausgeführten Codes zurück gibt.
92
+
4._**L**oop_: Und das solange wiederholt, bis es beendet wird (bei Python via `quit()`).
93
+
94
+
```{code-cell}
95
+
:tags: [remove-cell]
96
+
from jupyterquiz import display_quiz
97
+
c = { '--jq-multiple-choice-bg': '#202080',
98
+
'--jq-mc-button-bg': '#fafafa',
99
+
'--jq-mc-button-border': '#e0e0e0e0',
100
+
'--jq-mc-button-inset-shadow': '#555555',
101
+
'--jq-many-choice-bg': '#202080',
102
+
'--jq-numeric-bg': '#202080',
103
+
'--jq-numeric-input-bg': '#c0c0c0',
104
+
'--jq-numeric-input-label': '#101010',
105
+
'--jq-numeric-input-shadow': '#999999',
106
+
'--jq-string-bg': '#202080',
107
+
'--jq-incorrect-color': '#c80202',
108
+
'--jq-correct-color': '#009113',
109
+
'--jq-text-color': '#fafafa',
110
+
'--jq-link-color': '#9abafa' }
111
+
```
112
+
113
+
TODO: Abbildung REPL
114
+
115
+
TODO: genauere Erklärung des Ablaufs von bspw. `print("Hallo")`.
116
+
117
+
## Lernstandskontrolle
118
+
119
+
```{code-cell}
120
+
:tags: [remove-input]
121
+
q = [{
122
+
"question": "Welche Ausgabe erhalten Sie, wenn Sie <pre>>>> 3**3</pre> in die REPL eingeben?",
123
+
"type": "multiple_choice",
124
+
"answers": [
125
+
{ "code": "3**3", "correct": False },
126
+
{ "code": "9", "correct": True },
127
+
{ "code": "6", "correct": False },
128
+
{ "code": "33", "correct": False },
129
+
{ "code": "333", "correct": False },
130
+
{ "code": "SyntaxError", "correct": False }
131
+
]
132
+
},
133
+
{
134
+
"question": "Wie können Sie eine Kommazahl in Python eingeben?<br>Probieren Sie auch die falschen Optionen aus. Was ist deren Ergebnis?",
135
+
"type": "multiple_choice",
136
+
"answers": [
137
+
{ "code": "12,34", "correct": False },
138
+
{ "code": "12.34", "correct": True },
139
+
{ "code": "1234e-2", "correct": True },
140
+
{ "code": "123,4e-1", "correct": False },
141
+
]
142
+
},
143
+
{
144
+
"question": "Welche Ausgabe ergibt die folgende Eingabe in die REPL? Geben die Ausgabe bis zum ersten Leerzeichen ein.<pre>>>> test</pre>",
145
+
"type": "string",
146
+
"answers": [
147
+
{ "answer": "NameError:", "correct": True,
148
+
"match_case": False, "fuzzy_threshold": 0.9,
149
+
"feedback": "Korrekt. Wie in der Fehlermeldung angegeben ist die Variable `test` nicht definiert, weshalb Sie deren Wert nicht auslesen können."},
0 commit comments