Kurs:Python/LG/Kurs 2010
Schulungsunterlagen und Rückfragen
[Bearbeiten]Hier wird mit der Einführung
in deutscher Übersetzung gearbeitet. Für Fragen gibt es ein zentrales
Zum Einsatz kommt noch Python 2.6.
Brauchbare Programmieraufgaben:
Notizen
[Bearbeiten]Hier ist Platz für Notizen
Kapitel 12: Klassen und Objekte
[Bearbeiten]Inhalt:
- 12.1 Benutzerdefinierte zusammengesetzte Datentypen
- 12.2 Attribute
- 12.3 Instanzen als Parameter
- 12.4 Gleichheit
- 12.5 Rechtecke
- 12.6 Instanzen und Rückgabewerte
- 12.7 Objekte sind veränderbar
- 12.8 Kopieren
Kapitel 11: Dateien und Ausnahmen
[Bearbeiten]Lesezeichen: 11.2 Werte von Variablen schreiben
Erster Eindruck: Das Kapitel sieht richtig, richtig gut aus...
Wichtige Informationen:
Siehe auch: w:Eingabe und Ausgabe
Inhalt:
- Dateien und Ausnahmen
- Textdateien
- Werte von Variablen schreiben
- Verzeichnisse
- Picklen
- Ausnahmen
- Glossar
Kapitel 10: Der Datentyp Dictionary
[Bearbeiten]Wichtige Informationen: Einiges... Unter anderem die Methode sort für Listen...
Erkenntnisgewinn: Man kann die Ergebnisse einer Berechnung auch als Wert in einem Dictionary speichern, um so die Berechnungszeit zu verkürzen...
Siehe auch: w:Assoziatives Array
Kapitel 9: Tupel
[Bearbeiten]Lesezeichen: Kapitel 9 (Vor allem für den zweiten Teil des Kapitels konnte ich keine sinnvolle Anwendung erkennen...)
Wichtige Informationen: Runde Klammern. Der Abschnitt Tupel als Rückgabewerte ist mir nicht ganz klar. Die swap-Funktion scheint gar nichts zu bewirken... Bei der Arbeit mit random import random
nicht vergessen.
Programmentwicklung: pattern matching (= Verwenden passender Muster!)
Siehe auch: w:Tupel (Informatik)
Kapitel 8: Listen
[Bearbeiten]Wichtige Informationen: Liste, geschachtelte Liste, print range (1, 5) ergibt [1, 2, 3, 4], range(10) (=> 0 bis 9), range (1, 11, 2) ergibt „[1, 3, 5, 7, 9]“, Listen können auch an eine Variable übergeben werden, Zugriff auf die Listenelemente (Zugriff wie bei einem String mit:
Es lassen sich schöne Sachen machen:
datensatz = "NAME, VORNAME, ANSCHRIFT, PLZ, ORT"
print "Datensatz:", datensatz
liste = datensatz.split (", ")
print "Liste:", liste
datensatz = ", ".join (liste)
print "Datensatz:", datensatz
- Listenname [Index des Listenelements beginnend mit 0]
Durchlauf durch eine Liste:
horsemen = ["war", "famine", "pestilence", "death"]
i = 0
while i < len(horsemen):
print horsemen[i]
i = i + 1
Kapitel 7: Strings
[Bearbeiten]Lesezeichen: 7.4 String - Abschnitte
int, float und string (zusammengesetzt: character)
prefixes = "JKLMNOPQ"
suffix = "ack"
for letter in prefixes:
if letter == "O" or letter == "Q":
print letter + "u" + suffix
else:
print letter + suffix
Wichtige Inhalte: Bei s = "Wort" ist s[3:4], s[3:], s[:4], s[:] (ganzen String ausgeben) möglich, string-Modul
Unklar: Nutzungsmöglichkeiten...
Kapitel 6: Iteration
[Bearbeiten]Wichtige Begriffe: Endlosschleife, Tabulator (, '\t', ), das newline-Zeichen ('\n'), Tabellen, Ausgabe optimieren, ..., kapseln und zu verallgemeinern, Entwicklungs-Methode (Code funktioniert --> Code in eine Funktion packen, d. h. Kapselung), lokale Variablen („Variablen, die innerhalb einer Funktionsdefinition erzeugt werden sind“) lokal, i und j bei Schleifen verwenden
def printMultiples(n, high):
i = 1
while i <= high:
print n*i, '\t',
i = i + 1
print
def printMultTable(high):
i = 1
while i <= high:
printMultiples(i, i)
i = i + 1
printMultTable(10) ergibt:
printMultTable(10)
1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
8 16 24 32 40 48 56 64
9 18 27 36 45 54 63 72 81
10 20 30 40 50 60 70 80 90 100
Die Aufgabe wäre hier die Funktionsweise des Programms zu verstehen...
- Vorteile von Funktionen
- Funktionen erleichtern die Lesbarkeit des Codes, die Verstehbarkeit und die Fehlersuche wird vereinfacht
- Ist ein Programm in einzelne Funktionen zerlegt, können sie isoliert debuggt und dann wieder zusammengesetzt werden
- Funktionen erleichtern die Nutzung von Rekursion und Iteration
- Gute Funktionen können wiederverwendet werden
Kapitel 5: Funktionen mit Wert
[Bearbeiten]Lesezeichen: 5.4 Boolesche Funktionen (!)
Wichtige Begriffe: schrittweise Programmentwicklung (hinzufügen und testen), beim Testen sollten wir die richtige Antwort kennen ;-), „schreiben, testen und debuggen“, Turing-These (Mit wenigen Befehlen kann man jedes Programm schreiben), rekursive Definition => Python-Programm, Typ-Überprüfung (Wächter!)
- Boolesche Funktionen
def isBetween(x, y, z):
return y < x < z
x = input ("Eingabe 1: ")
y = input ("Eingabe 2: ")
z = input ("Eingabe 3: ")
if isBetween(x, y, z):
print "X ist zwischen y und z."
else:
print "X ist nicht zwischen y und z."
- Grundregeln des schrittweisen Programmierens
- Starte mit einem arbeitenden Programm und füge immer nur wenige Code-Zeilen hinzu
- Hilfsvariable sind sinnvoll um Zwischenergebnisse zu speichern (ausgeben und prüfen!)
- Läuft das Programm kann Gerüst-Code entfernt und Code kompakter geschrieben werden. Hierunter sollte die Lesbarkeit nicht leiden
Kapitel 4: Verzweigung und Rekursion
[Bearbeiten]
Spielereien
[Bearbeiten]Quersumme einer Zahl
[Bearbeiten]Folgendes Programm soll die Quersumme einer Zahl bilden.
def quersumme (n):
qs = 0
while n > 0:
qs = qs + (n % 10)
n = n / 10
return qs
# Hauptprogramm
# Eingabe
n = input ("Bitte geben Sie eine Ganzzahl groesser 0 ein: ")
# Verarbeitung und Ausgabe
if n < 1 or 0 < (n * 10 % 10):
print "Die von Ihnen eingegebene Zahl ist keine natuerliche Zahl!"
else:
print "Die Quersumme von ", n, " ist ", quersumme(n) , "."
- Versionsgeschichte, Entwicklung, Dokumentation
→ [...]
Notizen
[Bearbeiten]- Eingabe
- raw_input - Strings
- input - Ganzzahlen
Kapitel 3: Funktionen
[Bearbeiten]Kapitel 2: Variablen, Ausdrücke und Anweisungen
[Bearbeiten]print "Kapitel zwo"
- Notizen
- Zustandsdiagramm bei Variablen
- Groß-/Kleinschreibung spielt bei Variablen eine Rolle
- Es gibt keywords, sogenannte reservierte Schlüsselwörter
Python hat - nur - 29 Schlüsselwörter
and | del | for | is | raise |
assert | elif | from | lambda | return |
break | else | global | not | try |
class | except | if | or | while |
continue | exec | import | pass | yield |
def | finally | in |
Potenzieren: 5 ** 2
Kommentare
percentage = (minute * 100) / 60 # Vorsicht: Ganzzahl-Division
Kapitel 1: Über das Programmieren
[Bearbeiten]print "Hello, World!"