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