Teil 2 - Kontrollstrukturen

Lektionen

6: if

  • if-Anweisungen
  • Einrücken von Blöcken
  • Vergleichsoperatoren <, <=
  • Datentyp bool
  • Konstanten True und False
  • Logische Operatoren != und ==

6D: Design, Debugging und Donuts

  • Entwurf und Testen von Algorithmen

7A: Zeichenketten bzw. Strings

  • Länge einer Zeichenkette: len(s)
  • Zugriff auf einzelne Zeichen über index, z.B.: s[0]
  • Teilstrings mit s[start:ende]
  • Zeichenketten verbinden mit + und Vervielfachen mit *
  • Zeichen <-> Unicode-Position mit ord() und chr()

7B: Mathematik

  • Operatoren **, //, %
  • Modul math
    • Funktionen sqrt(), exp(), log(), sin(), cos(), tan()
    • pi

7C: Schleifen

  • while-Schleifen
  • for-Schleifen
  • break, continue

break und continue sollten sehr sparsam eingesetzt werden, da sie den Code meist unübersichtlicher machen.

8: Remix (optional)

  • keine neuen Inhalte, sondern Übungen

9: Fälle & Logik

  • else
  • elif
  • and, or, not

Übungen

Aufgabe 1 - import

Statt import math kann man auch from math import * schreiben. Informiere Dich über die Unterschiede und bewerte die beiden Varianten.

Aufgabe 2 - Module

Neben dem Modul math gibt es noch viele andere Module in Python. Um z.B. einen Würfel zu simulieren, kann man die Funktion randint aus dem Modul random benutzen:

import random
print(random.randint(1,6))

Experimentiere mit den Funktionen der folgenden Module und beschreibe deren Wirkung. Ziehe bei Bedarf die Python-Dokumentation zu Hilfe.

Modul Funktionen
random randint, random
time time, sleep
calendar prmonth, isleap

Aufgabe 3 - Geburtstag

Unter http://python.org findest Du die offizielle Dokumentation zu Python. Finde eine Funktion, mit der Du den Wochentag Deines Geburtstages herausfinden kannst.

Tipps: Bibliothek heißt auf englich "Library". Die Funktion befindet sich im Modul "calendar".

Aufgabe 4 - BMI

Der BMI (Body-Mass-Index) einer Person soll berechnet werden. Die folgenden Programmausschnitte leisten nicht das gewünschte. Erkläre und formuliere eine vollständige und verbesserte Version.

Version 1:

# Eingabe
...
# Verarbeitung
...
# Ausgabe
...
if bmi < 19:
print("Du hast Untergewicht!")
if bmi > 26:
print("Du hast Uebergewicht!")
print("Du hast Normalgewicht!")

Version 2:

# Eingabe
...
# Verarbeitung
...
# Ausgabe
...
if bmi < 19:
print("Du hast Untergewicht!")
if bmi <= 26:
print("Du hast Normalgewicht!")
else:
print("Du hast Uebergewicht!")

Quelle: inf-schule.de. Hier findest Du bei Bedarf noch weitere Übungen zu if-Anweisungen.

Aufgabe 5 - Schleifen

Wähle aus den Übungen zu Schleifen bei inf-schule.de einige aus, so dass Du sicher mit for- und while-Schleifen umgehen kannst.

Aufgabe 6 - Promillerechner

Überarbeite den Promillerechner aus Teil 1 so, dass man statt des Reduktionsfaktors das Alter und Geschlecht eingibt. Der Reduktionsfaktor soll dann vom Programm ermittelt werden. Am Ende der Berechnung soll der Benutzer entscheiden, ob er eine neue Berechnung ausführen möchte oder nicht. Er kann beliebig viele Berechnungen durchführen.

Aufgabe 7 - Pagerank

Informiere Dich auf der Seite zum Algorithmus der Woche (pdf) oder auf inf-schule.de über das Pagerank-Verfahren. Implementiere ein Programm, das ein festes Beispielnetz bewertet. Du musst Dir dazu überlegen, wie oft oder wie lange die Simulation durchgeführt wird. Du kannst auch die Beispielimplementierung auf inf-schule.de nutzen und sie entsprechend erweitern.

Aufgabe 8 - Tick Tack

Wie lange sind 15 Sekunden? Eigentlich eine einfache Frage. Wenn Du aber 15 Sekunden genau schätzen sollst, wird's schon schwieriger.

Tick Tack live

Testet in der Klasse wer eine Zeitspanne von 15 Sekunden am genausten schätzen kann. Der Gewinner erhält...?

Das Spiel lässt sich natürlich auch mit dem Computer spielen.

Tick Tack mit der Python Shell

Überlege wie man die Python Shell benutzen kann, um das Spiel zu spielen. Du solltest dazu die obige Aufgabe "Module" bearbeitet haben.

In der Shell lässt sich das Spiel noch nicht komfortabel spielen.

Tick Tack als Programm

Implementiere eine erste Version des Spiels als Python-Programm.

Erstellt eine Liste mit Dingen, die man an dem Spiel noch verbessern könnte oder sollte. Implementiere Deine Ideen. Du sollst dabei if-Anweisungen und Schleifen benutzen.