Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== 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 '':'' <code python> 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}") </code> <WRAP todo> Testen Sie obiges Python-Programm. Ändern Sie den Wert der Variablen ''a'' in der zweiten Zeile zu 4 und testen Sie erneut. </WRAP> ===== Wiederholungen ===== ==== for-loop ==== Ist die Anzahl Wiederholungen bekannt, wir meist ''range'' verwendet: <code python> 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}") </code> <WRAP todo> - 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 <code txt> 0^2=0 1^2=1 2^2=4 3^2=9 4^2=16 ... </code> </WRAP> Ist eine Liste gegeben, kann ein Programmblock für jedes Element wiederholt werden: <code python> 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.") </code> <WRAP todo> Speichern Sie obigen Code in einer Datei mit Namen ''forinlist.py'' und testen Sie das Programm. </WRAP> ==== while-loop ==== Wiederholen **solange** (while) eine Bedingung **wahr** ist. <code python> a = 7.0 q = 345.0 while a*a<q: print(f"{a} ist noch kleiner als die Wurzel von {q}") print(f"{a} ist grösser oder gleich der Wurzel von {q}") </code> <WRAP todo> Speichern und testen Sie folgendes Programm: <code python> q = 2.0 genau = 0.00000001 w = 0.0 s = q/2 while s>genau: while w*w<q: w = w+s w = w-s print(w) s = s/2; </code> Was genau macht das Programm? Wie macht es das? Warum funktioniert das? </WRAP> ==== Listen (Biber-Aufgabe) ==== <code python> 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]]]}") </code> <hidden Programm, das obiges Programm generiert> <code python> 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}}}\")") </code> </hidden> lehrkraefte/blc/informatik/glf22/python/intro.txt Last modified: 2022/11/23 10:35by Ivo Blöchliger