====== Python Grundlagen ======
Python ist eine weit verbreitete Programmiersprache mit vielen Anwendungsbereichen. Wichtigste Anwendungsgebiete sind «maschinelles Lernen» und Datenanalyse, aber auch in CAD-Programmen wie Blender und FreeCAD ist Python integraler Bestandteil.
Ein Python-Programm besteht aus einer oder mehreren Text-Dateien (normalerweise mit der Endung .py), d.h. Dateien, die nur Buchstaben, Zahlen und Symbole enthalten (und keine Formatierung). Normalerweise sollte man sich auf ASCII-Zeichen beschränken, mittlerweile sind aber auch beliebige Unicode-Zeichen erlaubt.
===== Programmblöcke =====
Ein Programmblock in Python ist ein folge von Zeilen **mit gleicher Einrückung**. Diese Zeilen werden eine nach der anderen ausgeführt.
Normalerweise wählt man die Einrückungen als Vielfache von 4 Leerschlägen. Aber auch eine andere Anzahl oder Tabulatoren sind möglich.
Wiederholungen (''for'' oder ''while''), Bedingte Ausführung (''if'') oder Unterprogramme und Funktionen (''def'') beginnen **Unterblöcke**. Am Ende einer solchen Zeile steht immer ein Doppelpunkt '':''
print("Erster Block")
a=5
print(f"Immer noch erster Block mit a={a}")
if a==4:
print("Neuer Unterblock")
a=7
print("Ende Unterblock")
print(f"Das gehört noch zum ersten Block! Und a={a}")
Testen Sie obiges Python-Programm. Ändern Sie den Wert der Variablen ''a'' in der zweiten Zeile zu 4 und testen Sie erneut.
===== Wiederholungen =====
==== for-loop ====
Ist die Anzahl Wiederholungen bekannt, wir meist ''range'' verwendet:
for i in range(5):
print(f"range(5): Jetzt ist i={i}")
for i in range(10,14):
print(f"range(10,14): Jetzt ist i={i}")
for i in range(20,30,4):
print(f"range(20,30,4): Jetzt ist i={i}")
- Schreiben Sie ein Python-Programm in die Datei ''siebzehn.py'' das alle zweistelligen, durch 17 teilbare Zahlen ausgibt.
- Schreiben Sie ein Python-Programm in die Datei ''quadratzahlen.py'' das alle Quadratzahlen von $1^2$ bis $400=20^2$ ausgibt, und zwar in der Form
0^2=0
1^2=1
2^2=4
3^2=9
4^2=16
...
Ist eine Liste gegeben, kann ein Programmblock für jedes Element wiederholt werden:
giftig = ["Grüner Knollenblätterpilz", "Orangefuchsiger Rauhkopf", "Lorchel", "Gifthäubling", "Mutterkorn", "Tigerritterling"]
for fingerweg in giftig:
print(f"{fingerweg}? Finger weg!")
for symbol in "Hallo Welt!":
print(symbol)
for zahl in [2,3,5,7,11,13,17,19,23,29,31]:
print(f"{zahl} ist prim.")
Speichern Sie obigen Code in einer Datei mit Namen ''forinlist.py'' und testen Sie das Programm.
==== while-loop ====
Wiederholen **solange** (while) eine Bedingung **wahr** ist.
a = 7.0
q = 345.0
while a*a
Speichern und testen Sie folgendes Programm:
q = 2.0
genau = 0.00000001
w = 0.0
s = q/2
while s>genau:
while w*w
Was genau macht das Programm? Wie macht es das? Warum funktioniert das?
==== Listen (Biber-Aufgabe) ====
a = [0, 3, 4, 2, 1]
b = [4, 2, 1, 3, 0]
c = [2, 4, 3, 0, 1]
print(f"a[b[c[0]]] = {a[b[c[0]]]}")
print(f"a[b[c[1]]] = {a[b[c[1]]]}")
print(f"a[b[c[2]]] = {a[b[c[2]]]}")
print(f"a[b[c[3]]] = {a[b[c[3]]]}")
print(f"a[b[c[4]]] = {a[b[c[4]]]}")
from random import randrange,shuffle
n = 5
l = 3
listen = [[i for i in range(n)] for j in range(l)]
for liste in listen:
shuffle(liste)
for i,liste in enumerate(listen):
print(f"{chr(i+97)} = {liste}")
ex = ""
for i in range(l):
ex += f"{chr(i+97)}["
for i in range(n):
v = listen[-1][i]
for j in range(l-2,-1,-1):
v = listen[j][v]
print(f"print(f\"{ex}{i}{']'*l} = {{{ex}{i}{']'*l}}}\")")