lehrkraefte:blc:informatik:glf22:python:intro

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.

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.

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}")
  1. Schreiben Sie ein Python-Programm in die Datei siebzehn.py das alle zweistelligen, durch 17 teilbare Zahlen ausgibt.
  2. 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.

Wiederholen solange (while) eine Bedingung wahr ist.

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

Speichern und testen Sie folgendes Programm:

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;

Was genau macht das Programm? Wie macht es das? Warum funktioniert das?

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

Programm, das obiges Programm generiert

Programm, das obiges Programm generiert

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}}}\")")
  • lehrkraefte/blc/informatik/glf22/python/intro.txt
  • Last modified: 2022/11/23 10:35
  • by Ivo Blöchliger