Skip to content

Commit ad24f57

Browse files
authored
create-cheatsheet (#48)
* feat: Add cheatsheet and todo list for cheatsheet content * feat: Enhance usage instructions * feat: Add basic content to Cheatsheet Complete Markdown cheatsheet code examples Update cheatsheet_syntax_todo.md to mark and add concrete code examples and common patterns from 900-Cheatsheet.md. Many checklist items under basic operations, assignment, number formats, type conversion, variables, strings, I/O, control flow, loops, functions, and imports were completed (checked) and several example lines were added for multiple/chained assignment, string operations, range/enumerate, loop control, default function parameters, and function usage to make the cheatsheet immediately usable and consistent with the master cheatsheet.
1 parent aad78dd commit ad24f57

3 files changed

Lines changed: 374 additions & 2 deletions

File tree

000-Einleitung/Nutzung_des_Kurses.md

Lines changed: 78 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ numbering:
33
heading_1: true
44
heading_2: true
55
title: true
6-
figure:
7-
template: Abb. %s
86
---
97

108
# Nutzung des Kurses
@@ -24,14 +22,92 @@ wiederholen? Können Sie das gelernte auf ein ähnliches Problem anwenden?
2422

2523
### Lesen
2624

25+
Lesen Sie den Text aufmerksam durch. Ich empfehle eine "Seite" einmal ganz zu
26+
überfliegen und dann den Text Abschnitt für Abschnitt durchzuarbeiten. Denken
27+
Sie nicht, dass Sie eine Seite als Ganzes am Stück durcharbeiten müssen.
28+
Arbeiten Sie lieber jeden Tag für 15 Minuten am Kurs als alle paar Tage/Wochen
29+
einen größeren Zeitblock lang.
30+
2731
### Bearbeiten
2832

33+
Das reine Lesen reicht nicht für das Erlernen von Programmierung! Programmieren
34+
ist eher mit einem Handwerk zu vergleichen. Nur weil Sie YouTube-Videos
35+
angesehen haben, wie man Maschinenteile fräst können Sie das nicht.
36+
37+
Kopieren Sie auch nicht nur Code, sondern tippen Sie ihn selbst. Das
38+
nachfolgende Zitat von
39+
[Daniel Holden](https://www.buildyourownlisp.com/chapter1_introduction#:~:text=Throughout%20the%20book,the%20writing%20yourself!)
40+
beschreibt dies sehr schön:
41+
42+
> Throughout the book I'll be giving description and insight, but with it I'll
43+
> be providing a lot of code. This will make it easy to follow along by copy
44+
> and pasting each section into your program without really understanding.
45+
> Please do not do this!.
46+
>
47+
> Type out each piece of sample code yourself. This is called The Hard Way. Not
48+
> because it is hard technically, but because it requires discipline. By doing
49+
> things The Hard Way you will come to understand the reasoning behind what you
50+
> are typing. Ideally things will click as you follow it along character by
51+
> character. When reading you may have an intuition as to why it looks right,
52+
> or what may be going on, but this will not always translate to a real
53+
> understanding unless you do the writing yourself!
54+
2955
### Experimentieren
3056

57+
Experimentieren Sie mit den Beispielen. Ändern Sie Werte, (Variablen-)Namen,
58+
Leerzeichen, Zeilenumbrüche, Klammern und vieles mehr und sehen Sie, was
59+
passiert. So bauen Sie ein mentales Modell dafür auf, welche Änderungen im
60+
Verhalten oder Fehlermeldungen Sie erwarten, wenn Sie etwas verändern, und Sie
61+
lernen besser mit den Fehlermeldungen umzugehen.
62+
63+
So gut wie kein Code den Sie schreiben werden wird beim ersten Versuch
64+
funktionieren und das tun, was Sie wollten. Sie werden syntaktische Fehler –
65+
Zeichen vergessen, Namen falsch schreiben, … – und logische Fehler –
66+
Bedingungen "falsch herum" definieren, Werte um ±1 falsch definieren, … –
67+
machen. Das ist normal und passiert auch den erfahrensten Programmierern
68+
andauern. Nutzen Sie die Gelegenheit, diese Fehlertoleranz und insb. auch das
69+
Beheben der Fehler zu erlernen. Und wenn Sie "alles kaputt gemacht haben", dann
70+
starten Sie einfach wieder mit einem früheren Zustand, der gesichert
71+
funktioniert hat.
72+
3173
### Programmieren
3274

75+
Die letzte Nutzungsform des Kurses ist das Anwenden des Gelernten auf eigene
76+
Probleme. Gibt es eine Berechnung, die Sie regelmäßig durchführen? Schreiben
77+
Sie sich ein Skript, das Ihnen hilft. Haben Sie eine Tabelle mit Nutzungsdaten,
78+
die Sie gerne auswerten wollen. Nutzen Sie beim nächsten Mal Python und nicht
79+
Excel.
80+
81+
Fangen Sie mit kleinen Problemen an, und wenn Sie Ihr Projekt nicht vollständig
82+
umsetzten konnten ist das auch nicht schlimm. Sie haben dennoch etwas gelernt,
83+
was Sie beim nächsten Problem nutzen können um näher an dessen Lösung zu
84+
kommen.
85+
3386
## Self-Assessment
3487

88+
Im Kurs verteilt finden Sie kleine Quizze und Übungen. Nutzen Sie diese um Ihr
89+
Wissen und Ihre Fähigkeiten zu überprüfen. Wenn Sie etwas falsch beantwortet
90+
haben, recherchieren Sie, warum es falsch war und denken Sie darüber nach,
91+
warum Sie die falsche Antwort gegeben haben.
92+
3593
## Übungsprojekte
3694

95+
Ein Kapitel im Kurs schließt mit einem größeren Projekt ab, welches dann als
96+
Übung erweitert werden kann. Ich empfehle Ihnen stark, diese Übungen anzugehen
97+
und wenigstens teilweise durchzuarbeiten.
98+
99+
Für Studierende im Fernstudium Bibliotheks- und Informationswissenschaft finden
100+
Sie dort jeweils Informationen dazu, was als _Kleine Aufgabe_ angerechnet
101+
werden kann.
102+
37103
## Auswahl der Inhalte für das Selbststudium
104+
105+
Wenn Sie noch keine Programmiererfahrung haben, starten Sie am besten von
106+
Anfang an. Haben Sie schon etwas oder auch viel Erfahrung, steigen Sie gerne
107+
irgendwo ein oder suchen Sie sich bestimmte Inhalte heraus.
108+
109+
So oder so sollten Sie keine Scheu davor haben auch nochmal zu früheren
110+
Inhalten zurückzukehren.
111+
112+
Am Ende des Buchs finden Sie ein [Cheatsheet](../900-Cheatsheet.md) welches Python-Syntax und
113+
-Konzepte nochmals kurz erklärt. Nutzen Sie dieses um sich wieder zu erinnern.

900-Cheatsheet.md

Lines changed: 295 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,295 @@
1+
---
2+
numbering:
3+
heading_1: true
4+
heading_2: true
5+
title: true
6+
---
7+
8+
# Cheatsheet
9+
10+
```{danger} Einrückung
11+
Python-Code muss korrekt eingerückt sein. Es sollten pro Einrückungsebene genau 4 Leerzeichen genutzt werden.
12+
```
13+
14+
## Zahlen
15+
16+
### `int()`
17+
18+
```python
19+
ganzzahl = 42
20+
ganzzahl = int(42)
21+
von_string = int("123")
22+
von_float = int(3.14) # Ergebnis: 3
23+
riesige_zahl = 1234567890987654321
24+
lesbare_zahleneingabe = 4_294_967_296 # 4294967296
25+
```
26+
27+
### `float()`
28+
29+
```python
30+
kommazahl = 3.14
31+
kommazahl = float(3.14)
32+
von_string = float("2.5")
33+
von_int = float(42) # Ergebnis: 42.0
34+
```
35+
36+
## Arithmetik
37+
38+
```python
39+
addition = 5 + 3 # 8
40+
subtraktion = 10 - 4 # 6
41+
multiplikation = 6 * 7 # 42
42+
multiplikation_float = 6.0*7 # 42.0
43+
division = 15 / 3 # 5.0
44+
ganzzahldivision = 17 // 5 # 3
45+
modulo = 17 % 5 # 2
46+
potenz = 2 ** 3 # 8
47+
```
48+
49+
## Zeichenketten (`str()`)
50+
51+
```python
52+
text = "Hallo Welt"
53+
zahl_zu_string = str(42) # "42"
54+
verkettung = "Hallo" + " " + "Welt" # "Hallo Welt"
55+
wiederholung = "Ha" * 3 # "HaHaHa"
56+
laenge = len("Python") # 6
57+
grossbuchstaben = "python".upper() # "PYTHON"
58+
kleinbuchstaben = "PYTHON".lower() # "python"
59+
60+
# Escape-Sequenzen
61+
text = "Wie geht's?"
62+
text = 'Wie geht\'s?'
63+
erzählung = "Sie sagt: \"So geht das!\""
64+
neue_zeile = "Zeile 1\nZeile 2"
65+
tabulator = "Text\teingerückt\n\tauch eingerückt"
66+
```
67+
68+
## Variablen
69+
70+
```python
71+
name = "Alice"
72+
alter = 25
73+
ist_student = True
74+
gehalt = 3500.50
75+
76+
# Mehrere Zuweisungen
77+
x, y, z = 1, 2, 3
78+
a = b = c = 0
79+
80+
_a = "Unterstrich am Anfang"
81+
a3 = "Zahlen sind möglich, wenn nicht erstes Zeichen im Namen"
82+
```
83+
84+
## Funktionen (`def`)
85+
86+
```python
87+
def begruessung():
88+
print("Hallo!")
89+
90+
def addiere(a, b):
91+
return a + b
92+
93+
def quadrat(zahl=1): # Standardwert
94+
return zahl ** 2
95+
96+
# Aufrufe
97+
begruessung()
98+
ergebnis = addiere(5, 3) # 8
99+
wert = quadrat(4) # 16
100+
standard = quadrat() # 1
101+
```
102+
103+
## Nützliche eingebaute Funktionen
104+
105+
### `print()`
106+
107+
```python
108+
print("Hallo Welt") # Hallo Welt
109+
print("Name:", "Alice", "Alter:", 25) # Name: Alice Alter: 25
110+
print("Ergebnis", 42, sep=" -> ") # Ergebnis -> 42
111+
print("Ende", end="!\n") # Ende!
112+
113+
# Formatierung
114+
name = "Bob"
115+
alter = 30
116+
print(f"Ich bin {name} und {alter} Jahre alt")
117+
118+
119+
# Zugriff auf Variable ohne Wert
120+
print(nicht_existent) # Achtung, wirft `NameError()`
121+
```
122+
123+
### `input()`
124+
125+
```python
126+
text = input("Wie heißen Sie? ")
127+
128+
zahl = float(input("Zahl > ") # Achtung, kann `ValueError()` "werfen"
129+
```
130+
131+
## Bedingungen (`if`)
132+
133+
```python
134+
alter = 18
135+
136+
if alter >= 18:
137+
print("Volljährig")
138+
elif alter >= 16:
139+
print("Fast volljährig")
140+
else:
141+
print("Minderjährig")
142+
143+
# Vergleichsoperatoren: ==, !=, <, <=, >, >=
144+
# Logische Operatoren: and, or, not
145+
if alter >= 18 and alter < 65:
146+
print("Arbeitsfähig")
147+
```
148+
149+
## Boolesche Werte
150+
151+
```python
152+
wahr = True
153+
falsch = False
154+
155+
wahr = True and True
156+
wahr = True or False
157+
158+
wahr = not False
159+
falsch = not True
160+
161+
falsch = False or False
162+
falsch = True and False
163+
```
164+
165+
## Schleifen
166+
167+
### `while`
168+
169+
```python
170+
zaehler = 0
171+
while zaehler < 5:
172+
print(zaehler)
173+
zaehler += 1
174+
175+
# Mit break und continue
176+
zaehler = 0
177+
while True:
178+
if zaehler == 3:
179+
break # Abbruch der Schleife
180+
if zaehler == 1:
181+
zaehler += 1
182+
continue # Überspringe den Rest des Codes in der Schleife und starte die nächste Iteration
183+
print(zaehler)
184+
zaehler += 1
185+
```
186+
187+
### `for`
188+
189+
```python
190+
# Über eine Liste iterieren
191+
fruechte = ["Apfel", "Banane", "Orange"]
192+
for frucht in fruechte:
193+
print(frucht)
194+
195+
# Über einen Bereich iterieren
196+
for i in range(5): # 0, 1, 2, 3, 4
197+
print(i)
198+
199+
for i in range(2, 8, 2): # 2, 4, 6
200+
print(i)
201+
202+
# Mit enumerate für Index und Wert
203+
for index, wert in enumerate(fruechte):
204+
print(f"{index}: {wert}")
205+
```
206+
207+
## Importieren von Code (`import`)
208+
209+
```python
210+
# Gesamtes Modul importieren
211+
import math
212+
ergebnis = math.sqrt(16) # 4.0
213+
214+
# Spezifische Funktionen importieren
215+
from math import sqrt, pi
216+
ergebnis = sqrt(25) # 5.0
217+
kreisflaeche = pi * 5**2
218+
219+
# Modul mit Alias importieren
220+
import datetime as dt
221+
heute = dt.date.today()
222+
223+
# Alles aus einem Modul importieren (nicht empfohlen)
224+
from math import *
225+
```
226+
227+
## Dokumentation
228+
229+
### Kommentare
230+
231+
```python
232+
kein_kommentar # Kommentar
233+
```
234+
235+
### docstrings
236+
237+
Am Anfang einer Datei, Funktion, Klasse, … kann ein String plaziert werden, welche von der Funktion `help()` für die Dokumentation genutzt wird. Es haben sich verschiedene Formatierungen entwickelt. Hier wird eine vorgestellt.
238+
239+
```python
240+
"""Lend or return media, if within allowed number of media on account.
241+
242+
Parameters:
243+
-----------
244+
account_balance (int): The current balance before the transaction is attempted.
245+
Valid values: 0 <= x <= 15
246+
247+
number_of_media (int): The number of the media to be lent or returned.
248+
A positive number signifies lending and a negative Number signifies returning.
249+
250+
Returns:
251+
--------
252+
int: The current account balance.
253+
"""
254+
```
255+
256+
## Ausführbare Skripte
257+
258+
### Shebang
259+
260+
Nur die erste Zeile des Skripts kann als Shebang benutzt werden!
261+
262+
```python
263+
#! /usr/bin/env python3
264+
```
265+
266+
### `if __name__ == "__main__":`
267+
268+
```python
269+
wird_immer_ausgeführt = 1 # bspw. beim Importieren
270+
def das_auch():
271+
print("wird ausgeführt, wenn die Funktion aufgerufen wird")
272+
...
273+
274+
if __name__ == "__main__":
275+
wird_nur_als_skript = "ausgeführt"
276+
das_auch()
277+
```
278+
279+
### Datei ausführbar machen
280+
281+
In Unix-artigen Betriebssystemen.
282+
283+
```bash
284+
$ chmod +x datei.py
285+
```
286+
287+
## Python Code ausführen
288+
289+
```bash
290+
$ python3 code.py
291+
...
292+
$ python3 -i code.py
293+
...
294+
>>> interaktive_weiterarbeit_möglich = True
295+
```

0 commit comments

Comments
 (0)