Skip to content

Latest commit

 

History

History
529 lines (402 loc) · 11.1 KB

File metadata and controls

529 lines (402 loc) · 11.1 KB
numbering
heading_1 heading_2 title
true
true
true

Cheatsheet


Python-Code muss korrekt eingerückt sein. Es sollten pro Einrückungsebene genau
4 Leerzeichen genutzt werden.

Variablen

name = "Alice"
alter = 25
ist_student = True
gehalt = 3500.50

# Mehrere Zuweisungen
x, y, z = 1, 2, 3
a = b = c = 0

_a = "Unterstrich am Anfang"
a3 = "Zahlen sind möglich, wenn nicht erstes Zeichen im Namen"

Literale (Literal Values)

Literale sind Werte im Code, die Sie während dem Schreiben des Codes festlegen.

# Zahlen-Literale
42                    # int
3.14                  # float

# String-Literale
"Hallo"               # str
'Welt'                # str

# Boolesche Literale
True                  # bool
False                 # bool

# None - repräsentiert "kein Wert" oder "nicht vorhanden"
# Dies ist eine explizite Definition als "kein Wert" und nicht das Fehlen eines
# Wertes!
None                  # NoneType

# Beispiele für None
def keine_rückgabe():
    print("Tut etwas")
    # Kein return Statement, gibt implizit None zurück

ergebnis = keine_rückgabe()  # ergebnis ist None

# None in Bedingungen
# Tests für `None` sollten immer mit  `is` und nicht mit `==` durchgeführt werden.
if ergebnis is None:
    print("Kein Ergebnis vorhanden")

Zahlen

int()

ganzzahl = 42
ganzzahl = int(42)
von_string = int("123")
von_float = int(3.14)                  # Ergebnis: 3
riesige_zahl = 1234567890987654321
lesbare_zahleneingabe = 4_294_967_296  # 4294967296

float()

kommazahl = 3.14
kommazahl = float(3.14)
von_string = float("2.5")
von_int = float(42)       # Ergebnis: 42.0

Zeichenketten (str())

text = "Hallo Welt"
zahl_zu_string = str(42)            # "42"
verkettung = "Hallo" + " " + "Welt" # "Hallo Welt"
wiederholung = "Ha" * 3             # "HaHaHa"
laenge = len("Python")              # 6
grossbuchstaben = "python".upper()  # "PYTHON"
kleinbuchstaben = "PYTHON".lower()  # "python"

# Escape-Sequenzen
text = "Wie geht's?"
text = 'Wie geht\'s?'
erzählung = "Sie sagt: \"So geht das!\""
neue_zeile = "Zeile 1\nZeile 2"
tabulator = "Text\teingerückt\n\tauch eingerückt"

Besondere Python-String

f-String = Formatierte String

# Variablen für die nachfolgenden Beispiele.
name = "Alice"
alter = 25
kontostand = 14

# Variablen in Strings einfügen
print(f"Hallo, ich bin {name}!")                    # Hallo, ich bin Alice!
print(f"Ich bin {name} und {alter} Jahre alt")      # Ich bin Alice und 25 Jahre alt

# Ausdrücke in f-Strings
a = 17
b = 5
print(f"{a} geteilt durch {b} ist {a//b} mit Rest {a%b}.")
# 17 geteilt durch 5 ist 3 mit Rest 2.

Boolesche Werte

wahr   = True
falsch = False

wahr   = True and True
wahr   = True or False

wahr   = not False
falsch = not True

falsch = False or False
falsch = True and False

Arithmetik

addition = 5 + 3             # 8
subtraktion = 10 - 4         # 6
multiplikation = 6 * 7       # 42
multiplikation_float = 6.0*7 # 42.0
division = 15 / 3            # 5.0
ganzzahldivision = 17 // 5   # 3
modulo = 17 % 5              # 2
potenz = 2 ** 3              # 8

Bedingungen (if)

alter = 18

if alter >= 18:
    print("Volljährig")
elif alter >= 16:
    print("Fast volljährig")
else:
    print("Minderjährig")

# Vergleichsoperatoren: ==, !=, <, <=, >, >=
# Logische Operatoren: and, or, not
if alter >= 18 and alter < 65:
    print("Arbeitsfähig")

Schleifen

while

zaehler = 0
while zaehler < 5:
    print(zaehler)
    zaehler += 1

# Mit break und continue
zaehler = 0
while True:
    if zaehler == 3:
        break        # Abbruch der Schleife
    if zaehler == 1:
        zaehler += 1
        continue     # Überspringe den Rest des Codes in der Schleife und starte die nächste Iteration
    print(zaehler)
    zaehler += 1

# Häufiges Pattern: Eingaben bis leer einlesen
numbers = []
while True:
    text = input(">> ")
    if text == "":   # Leere Eingabe beendet die Schleife
        break
    numbers.append(int(text))
# Danach enthält numbers alle eingegebenen Zahlen

# Walrus-Operator := (Assignment Expression)
# Erlaubt Zuweisung in Bedingungen
while result := calculate():
    print(result)  # Schleife läuft, solange calculate() nicht None/0/False zurückgibt

# Äquivalent zu:
result = calculate()
while result:
    print(result)
    result = calculate()

for

# Über eine Liste iterieren
fruechte = ["Apfel", "Banane", "Orange"]
for frucht in fruechte:
    print(frucht)

# Über einen Bereich iterieren
for i in range(5):  # 0, 1, 2, 3, 4
    print(i)

for i in range(2, 8, 2):  # 2, 4, 6
    print(i)

# Mit enumerate für Index und Wert
for index, wert in enumerate(fruechte):
    print(f"{index}: {wert}")

Funktionen (def)

def begruessung():
    print("Hallo!")

def addiere(a, b):
    return a + b

def quadrat(zahl=1):  # Standardwert
    return zahl ** 2

# Aufrufe
begruessung()
ergebnis = addiere(5, 3)  # 8
wert = quadrat(4)         # 16
standard = quadrat()      # 1

Importieren von Code (import)

# Gesamtes Modul importieren
import math
ergebnis = math.sqrt(16)  # 4.0

# Spezifische Funktionen importieren
from math import sqrt, pi
ergebnis = sqrt(25)  # 5.0
kreisflaeche = pi * 5**2

# Modul mit Alias importieren
import datetime as dt
heute = dt.date.today()

# Alles aus einem Modul importieren (nicht empfohlen)
from math import *

Listen (list)

fruechte = ["Apfel", "Banane", "Orange"]
zahlen = [1, 2, 3, 4, 5]
gemischt = ["Text", 42, True, 3.14]

# Zugriff auf Elemente (0-basiert - erstes Element hat Index 0)
erstes = fruechte[0]        # "Apfel" (erstes Element)
zweites = fruechte[1]       # "Banane" (zweites Element)
drittes = fruechte[2]       # "Orange" (drittes Element)
letztes = fruechte[-1]      # "Orange" (letztes Element)
vorletztes = fruechte[-2]   # "Banane" (vorletztes Element)

# Praktisches Beispiel mit Zahlen-Liste
numbers = [10, 20, 30, 40]
op1 = numbers[0]            # 10 (erstes Element)
op2 = numbers[1]            # 20 (zweites Element)

# Länge einer Liste
anzahl = len(fruechte)      # 3

# Elemente hinzufügen
fruechte.append("Mango")    # Am Ende hinzufügen

# Über Liste iterieren
for frucht in fruechte:
    print(frucht)

# Mit Index iterieren
for i, frucht in enumerate(fruechte):
    print(f"{i}: {frucht}")

Wörterbücher (dict)

person = {
    "name": "Alice",
    "alter": 25,
    "stadt": "Berlin"
}

# Zugriff auf Werte
name = person["name"]           # "Alice"
alter = person.get("alter")     # 25
gehalt = person.get("gehalt", 0) # 0 (Standardwert)

# Werte setzen
person["beruf"] = "Entwicklerin"

# Über Wörterbuch iterieren
for schluessel, wert in person.items():
    print(f"{schluessel}: {wert}")

for schluessel in person.keys():
    print(schluessel)

Nützliche eingebaute Funktionen

print()

print("Hallo Welt")                    # Hallo Welt
print("Name:", "Alice", "Alter:", 25)  # Name: Alice Alter: 25
print("Ergebnis", 42, sep=" -> ")      # Ergebnis -> 42
print("Ende", end="!\n")               # Ende!

# Formatierung
name = "Bob"
alter = 30
print(f"Ich bin {name} und {alter} Jahre alt")


# Zugriff auf Variable ohne Wert
print(nicht_existent)                  # Achtung, wirft `NameError()`

input()

text = input("Wie heißen Sie? ")

zahl = float(input("Zahl > "))   # Achtung, kann `ValueError()` "werfen"

assert - Überprüfungen im Code

# assert überprüft eine Bedingung und wirft AssertionError bei False
# Ein assert macht eine Annahme über den nachfolgenden Code explizit.
def addiere(a, b):
    return a + b

assert addiere(2, 3) == 5, "Fehler: 2 + 3 sollte 5 sein"
assert addiere(10, 25) == 35, "Fehler: 10 + 25 sollte 35 sein"

# Nützlich für Tests und Debugging
ergebnis = calculate()
assert ergebnis is not None, "Berechnung gab None zurück"
assert ergebnis > 0, f"Ergebnis sollte positiv sein, war aber {ergebnis}"

help() - Dokumentation anzeigen

# Zeigt Dokumentation zu Funktionen, Modulen, etc.
help(print)
help(len)
help(str.upper)

# Für eigene Funktionen mit docstrings
def meine_funktion():
    """Diese Funktion macht etwas Tolles."""
    pass

help(meine_funktion)  # Zeigt "Diese Funktion macht etwas Tolles."

Dateien lesen und schreiben

# Datei lesen
with open("datei.txt", "r") as f:
    inhalt = f.read()           # Gesamten Inhalt lesen

with open("datei.txt", "r") as f:
    zeilen = f.readlines()      # Alle Zeilen als Liste

with open("datei.txt", "r") as f:
    for zeile in f:             # Zeile für Zeile
        print(zeile.strip())

# Datei schreiben
with open("ausgabe.txt", "w") as f:
    f.write("Hallo Welt\n")

# An Datei anhängen
with open("log.txt", "a") as f:
    f.write("Neuer Eintrag\n")

CSV-Dateien

import csv

# CSV lesen
with open("daten.csv", "r") as f:
    reader = csv.reader(f, delimiter=";")
    for zeile in reader:
        print(zeile)  # zeile ist eine Liste

# CSV mit Spaltennamen lesen
with open("daten.csv", "r") as f:
    reader = csv.DictReader(f, delimiter=";")
    for zeile in reader:
        print(zeile["spaltenname"])  # zeile ist ein Wörterbuch

# CSV schreiben
with open("ausgabe.csv", "w", newline="") as f:
    writer = csv.writer(f, delimiter=";")
    writer.writerow(["Name", "Alter", "Stadt"])
    writer.writerow(["Alice", "25", "Berlin"])

Ausnahmebehandlung (try/except)

try:
    zahl = int(input("Zahl eingeben: "))
    ergebnis = 10 / zahl
    print(ergebnis)
except ValueError:
    print("Das war keine gültige Zahl!")
except ZeroDivisionError:
    print("Division durch Null nicht möglich!")
except Exception as e:
    print(f"Unerwarteter Fehler: {e}")
finally:
    print("Wird immer ausgeführt")

Dokumentation

Kommentare

kein_kommentar # Kommentar

docstrings

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.

"""Lend or return media, if within allowed number of media on account.

Parameters:
-----------
account_balance (int): The current balance before the transaction is attempted.
        Valid values: 0 <= x <= 15

number_of_media (int): The number of the media to be lent or returned.
        A positive number signifies lending and a negative Number signifies returning.

Returns:
--------
int: The current account balance.
"""

Ausführbare Skripte

Shebang

Nur die erste Zeile des Skripts kann als Shebang benutzt werden!

#! /usr/bin/env python3

if __name__ == "__main__":

wird_immer_ausgeführt = 1 # bspw. beim Importieren
def das_auch():
    print("wird ausgeführt, wenn die Funktion aufgerufen wird")
    ...

if __name__ == "__main__":
    wird_nur_als_skript = "ausgeführt"
    das_auch()

Datei ausführbar machen

In Unix-artigen Betriebssystemen.

$ chmod +x datei.py

Python Code ausführen

$ python3 code.py
...
$ python3 -i code.py
...
>>> interaktive_weiterarbeit_möglich = True