Skip to article frontmatterSkip to article content

11Cheatsheet

Humboldt-Universität zu Berlin, Institut für Bibliotheks- und Informationswissenschaft

11.1Variablen

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"

11.2Zahlen

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

11.3Zeichenketten (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"

11.4Boolesche 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

11.5Arithmetik

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

11.6Bedingungen (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")

11.7Schleifen

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

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}")

11.8Funktionen (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

11.9Importieren 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 *

11.10Listen (list)

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

# Zugriff auf Elemente (0-basiert)
erstes = fruechte[0]        # "Apfel"
letztes = fruechte[-1]      # "Orange"

# 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}")

11.11Wö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)

11.12Nü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"

11.13Dateien 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")

11.14CSV-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"])

11.15Ausnahmebehandlung (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")

11.16Dokumentation

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.
"""

11.17Ausfü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

11.18Python Code ausführen

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