Kurs:Python/LG/Kurs 2010

Aus Wikiversity
Zur Navigation springen Zur Suche springen

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]

Kapitel 12

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]

Kapitel 11

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]

Kapitel 10

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...)

Kapitel 9

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]

Kapitel 8

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

Notizenseite

Kapitel 7: Strings[Bearbeiten]

Lesezeichen: 7.4 String - Abschnitte

Kapitel 7

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]

Kapitel 6

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 (!)

Kapitel 5

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
  1. Starte mit einem arbeitenden Programm und füge immer nur wenige Code-Zeilen hinzu
  2. Hilfsvariable sind sinnvoll um Zwischenergebnisse zu speichern (ausgeben und prüfen!)
  3. 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]

Kapitel 4


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 3

Kapitel 2: Variablen, Ausdrücke und Anweisungen[Bearbeiten]

Kapitel 2

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 print

Potenzieren: 5 ** 2

Kommentare

percentage = (minute * 100) / 60     # Vorsicht: Ganzzahl-Division

Kapitel 1: Über das Programmieren[Bearbeiten]

Kapitel 1

print "Hello, World!"