lehrkraefte:blc:informatik:glf22:python:intro

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
lehrkraefte:blc:informatik:glf22:python:intro [2022/11/08 14:10]
Ivo Blöchliger created
lehrkraefte:blc:informatik:glf22:python:intro [2022/11/23 10:35] (current)
Ivo Blöchliger ↷ Page moved from python:intro to lehrkraefte:blc:informatik:glf22:python:intro
Line 6: Line 6:
 ===== Programmblöcke ===== ===== Programmblöcke =====
 Ein Programmblock in Python ist ein folge von Zeilen **mit gleicher Einrückung**. Diese Zeilen werden eine nach der anderen ausgeführt. 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, Bedingte Ausführung oder Unterprogramme und Funktionen beginnen **Unterblöcke**:+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> <code python>
 print("Erster Block") print("Erster Block")
 a=5 a=5
 print(f"Immer noch erster Block mit a={a}") print(f"Immer noch erster Block mit a={a}")
-if a==5+if a==4
-  print("Neuer Unterblock"+    print("Neuer Unterblock"
-  a=7 +    a=7 
-  print("Ende Unterblock"+    print("Ende Unterblock") 
-print("Das gehört noch zum ersten Block! Und a={a}"+     
-</code>  +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.1667913047.txt.gz
  • Last modified: 2022/11/08 14:10
  • by Ivo Blöchliger