Python-Tutorial
Dieses Tutorial bietet einen umfassenden, praxisnahen Einstieg in Python. Es richtet sich an erwachsene Lernende, die gründlich und strukturiert die Sprache Python von Grund auf lernen oder ihr Wissen vertiefen möchten.
Inhaltsverzeichnis
- Was ist Python?
- Installation und erste Schritte
- Grundlagen: Syntax, Variablen & Datentypen
- Benutzereingaben und Ausgabe
- Operatoren und Rechnen
- Kontrollstrukturen: Bedingungen und Schleifen
- Datenstrukturen: Listen, Tupel, Dictionaries, Sets
- Funktionen und Argumente
- Objektorientierte Programmierung (OOP)
- Fehlerbehandlung
- Module und Pakete
- Dateien lesen und schreiben
- Weiterführende Themen
- Praxisprojekte und Übungen
- Empfohlene Ressourcen
1. Was ist Python?
Python ist eine universelle, leicht verständliche Programmiersprache, die weltweit in Wissenschaft, Wirtschaft, Webentwicklung, Datenanalyse, Machine Learning, Automatisierung und vielen weiteren Bereichen eingesetzt wird.
- Lesbare Syntax, ideal für Einsteiger und Profis
- Große Community, viele Bibliotheken (z.B. für Datenanalyse, Web, KI, Grafik, Spiele)
- Plattformunabhängig (Windows, Mac, Linux)
- Open Source und kostenlos
2. Installation und erste Schritte
- Python herunterladen: python.org (achte auf die aktuelle Version, z.B. 3.12)
- Installation: Aktiviere „Add Python to PATH“ während der Installation.
- Editoren/IDEs: VS Code, PyCharm, Thonny oder die mitgelieferte IDLE.
- Online-Editoren: replit.com, learnpython.org
python --version
eingeben, um zu prüfen, ob Python korrekt installiert ist.3. Grundlagen: Syntax, Variablen & Datentypen
Dein erstes Programm
print("Hallo, Welt!")
print() gibt Text oder Variablen auf dem Bildschirm aus.
Kommentare
# Das ist ein Kommentar
print("Kommentare werden ignoriert") # Kommentar am Zeilenende
Variablen und Datentypen
name = "Maria" # String (Text)
alter = 35 # Integer (Ganzzahl)
pi = 3.14159 # Float (Kommazahl)
ist_aktiv = True # Boolean (Wahr/Falsch)
Python erkennt den Typ automatisch. Mit type(name)
kannst du den Typ prüfen:
print(type(name)) # <class 'str'>
print(type(alter)) # <class 'int'>
Typ | Beispiel | Beschreibung |
---|---|---|
String | "Hallo" |
Text |
Integer | 42 |
Ganzzahl |
Float | 3.14 |
Kommazahl |
Boolean | True oder False |
Wahr/Falsch |
Typumwandlung (Casting)
zahl = "42"
zahl_int = int(zahl)
print(zahl_int + 10) # 52
4. Benutzereingaben und Ausgabe
benutzer = input("Wie heißen Sie? ")
print("Willkommen,", benutzer)
input() liest eine Benutzereingabe (immer als String). Für Zahlen musst du umwandeln:
alter = int(input("Wie alt sind Sie? "))
5. Operatoren und Rechnen
a = 7
b = 3
print(a + b) # Addition
print(a - b) # Subtraktion
print(a * b) # Multiplikation
print(a / b) # Division (float)
print(a // b) # Ganzzahl-Division
print(a % b) # Modulo (Rest)
print(a ** b) # Potenz
Operatoren können auch mit Strings verwendet werden:
print("Hallo" + " Welt") # Verkettung
print("Hi! " * 3) # Wiederholung
6. Kontrollstrukturen: Bedingungen und Schleifen
Bedingungen (if, elif, else)
zahl = int(input("Geben Sie eine Zahl ein: "))
if zahl > 0:
print("Die Zahl ist positiv.")
elif zahl == 0:
print("Die Zahl ist null.")
else:
print("Die Zahl ist negativ.")
Vergleichsoperatoren: ==
(gleich), !=
(ungleich), >
, <
, >=
, <=
Logische Operatoren
a = 5
b = 10
if a < 10 and b > 5:
print("Beide Bedingungen sind erfüllt.")
if a == 5 or b == 5:
print("Mindestens eine Bedingung ist erfüllt.")
if not a == 7:
print("a ist nicht 7.")
Schleifen
for-Schleife
for i in range(5):
print("Durchlauf", i)
range(5)
erzeugt die Zahlen 0 bis 4.
while-Schleife
x = 0
while x < 3:
print("x ist", x)
x += 1
break und continue
for i in range(10):
if i == 5:
break # Schleife beenden
if i % 2 == 0:
continue # nächsten Schleifendurchlauf
print(i)
7. Datenstrukturen: Listen, Tupel, Dictionaries, Sets
Listen
farben = ["rot", "blau", "grün"]
print(farben[1]) # 'blau'
farben.append("gelb")
print(farben)
farben[0] = "orange"
del farben[2]
print(farben)
- Listen sind veränderbar und können verschiedene Datentypen enthalten.
- Wichtige Methoden:
append()
,insert()
,remove()
,pop()
,sort()
,reverse()
Listen-Komprehension
quadrate = [x**2 for x in range(10)]
print(quadrate)
Tupel
koordinaten = (10, 20)
print(koordinaten[0])
# Tupel sind unveränderbar (immutable)
Dictionaries
person = {"name": "Maria", "alter": 35}
print(person["name"])
person["stadt"] = "Berlin"
for schluessel, wert in person.items():
print(schluessel, ":", wert)
- Dictionaries speichern Werte mit Schlüsseln.
- Wichtige Methoden:
keys()
,values()
,items()
,get()
Sets
zahlen = {1, 2, 3, 2}
print(zahlen) # {1, 2, 3}
zahlen.add(4)
zahlen.remove(2)
print(zahlen)
- Sets enthalten nur einzigartige Werte.
8. Funktionen und Argumente
def begruessung(name):
print("Hallo,", name)
begruessung("Maria")
Funktionen helfen, Code zu strukturieren und wiederzuverwenden.
def addiere(a, b=0):
return a + b
ergebnis = addiere(5, 7)
print(ergebnis)
- Mit
return
gibst du einen Wert zurück. - Standardwerte für Argumente sind möglich.
Mehrere Rückgabewerte
def rechne(a, b):
return a + b, a * b
summe, produkt = rechne(3, 4)
print("Summe:", summe, "Produkt:", produkt)
Beliebig viele Argumente
def summiere(*zahlen):
return sum(zahlen)
print(summiere(1, 2, 3, 4))
Lambda-Funktionen
f = lambda x: x + 1
print(f(5))
9. Objektorientierte Programmierung (OOP)
Mit Klassen kannst du eigene Datentypen und Methoden definieren.
class Auto:
def __init__(self, marke, baujahr):
self.marke = marke
self.baujahr = baujahr
def hupen(self):
print("Hup Hup!")
mein_auto = Auto("VW", 2020)
print(mein_auto.marke)
mein_auto.hupen()
__init__
ist der Konstruktor,self
verweist auf das Objekt.- Methoden sind Funktionen innerhalb einer Klasse.
Vererbung
class Elektroauto(Auto):
def __init__(self, marke, baujahr, akku_kapazitaet):
super().__init__(marke, baujahr)
self.akku_kapazitaet = akku_kapazitaet
def lade(self):
print("Lädt...")
tesla = Elektroauto("Tesla", 2022, 100)
print(tesla.marke, tesla.akku_kapazitaet)
tesla.lade()
Eigenschaften (Properties)
class Person:
def __init__(self, name):
self._name = name
@property
def name(self):
return self._name
@name.setter
def name(self, wert):
self._name = wert
p = Person("Anna")
print(p.name)
p.name = "Maria"
print(p.name)
Buch
mit den Eigenschaften titel
und autor
und einer Methode beschreibung()
, die einen Satz wie "Titel von Autor" ausgibt.10. Fehlerbehandlung
try:
zahl = int(input("Gib eine Zahl ein: "))
print(10 / zahl)
except ZeroDivisionError:
print("Durch 0 teilen geht nicht!")
except ValueError:
print("Bitte gib eine gültige Zahl ein.")
finally:
print("Programm beendet.")
try
...except
: Fehler abfangenfinally
: Wird immer ausgeführt, egal ob Fehler auftritt oder nicht
Eigene Exceptions
class MeineFehler(Exception):
pass
try:
raise MeineFehler("Das ist ein benutzerdefinierter Fehler!")
except MeineFehler as e:
print(e)
11. Module und Pakete
import math
print(math.sqrt(16)) # Quadratwurzel
from random import randint
print(randint(1, 10)) # Zufallszahl zwischen 1 und 10
- Mit
import
bindest du externe Bibliotheken ein. - Eigene Module: Speichere Funktionen in einer
.py
-Datei und importiere sie.
Eigene Module
# datei: hilfsfunktionen.py
def quadriere(x):
return x * x
# Im Hauptprogramm:
import hilfsfunktionen
print(hilfsfunktionen.quadriere(5))
Installation externer Pakete
pip install requests
Beispiel für die Verwendung eines externen Moduls:
import requests
antwort = requests.get("https://api.github.com")
print(antwort.status_code)
12. Dateien lesen und schreiben
Datei schreiben
with open("test.txt", "w") as f:
f.write("Hallo Datei!")
Datei lesen
with open("test.txt", "r") as f:
inhalt = f.read()
print(inhalt)
with
sorgt dafür, dass die Datei nach dem Lesen/Schreiben korrekt geschlossen wird.- Weitere Modi:
"a"
(anhängen),"b"
(binär),"x"
(neu anlegen)
CSV-Dateien
import csv
with open("daten.csv", "w", newline="") as f:
writer = csv.writer(f)
writer.writerow(["Name", "Alter"])
writer.writerow(["Maria", 35])
with open("daten.csv", "r") as f:
reader = csv.reader(f)
for zeile in reader:
print(zeile)
13. Weiterführende Themen
- Listen-Komprehension:
[x * 2 for x in range(5)]
- Generatoren:
def gen(): for i in range(3): yield i for zahl in gen(): print(zahl)
- Dekoratoren:
def dekorator(funktion): def wrapper(): print("Vorher") funktion() print("Nachher") return wrapper @dekorator def sag_hallo(): print("Hallo!") sag_hallo()
- Reguläre Ausdrücke:
import re text = "abc 123" muster = re.search(r"\d+", text) print(muster.group())
- Datenanalyse mit
pandas
, Visualisierung mitmatplotlib
- Webentwicklung mit
flask
oderdjango
- Automatisierung mit
os
,shutil
,subprocess
- Unit-Tests mit
unittest
14. Praxisprojekte und Übungen
- Schreibe einen Taschenrechner, der Grundrechenarten unterstützt.
- Erstelle ein Quiz mit mehreren Fragen und Auswertung.
- Baue ein Text-Adventure-Spiel.
- Automatisiere das Umbenennen von Dateien in einem Ordner.
- Lese Daten aus einer CSV-Datei und erstelle eine Statistik.
- Erstelle eine kleine Web-App mit Flask.
15. Empfohlene Ressourcen
Viel Erfolg beim Lernen und Programmieren mit Python!