SiaProgrammingPython

1. Stunde - Übungen

Logische Ausdrücke, Module

Programmieren Sie eine XOR-Funktion gemäß folgender Tabelle:

A

B

A xor B

False

False

False

False

True

True

True

False

True

True

True

False

Verwenden Sie die Operationen and, or, not und Klammern ().

Lösungshilfe:

Verwenden Sie die folgende Vorlage für das Modul logic.py und ergänzen Sie den Ausdruck ... in Zeile 5.

# Module logic.py

def xor(A,B):
    """Returns the logical exclusive or of A and B"""
    C=...
    return C

if __name__=='__main__': # Wird das Modul nicht importiert,
    # sondern mit run gestartet, dann wird dieser Test ausgefuehrt

    K=((False,False),(False,True),(True,False),(True,True))
    print 'A\tB\tA xor B'
    for k in K:
        A,B=k[0],k[1]
        print A,'\t',B,'\t',xor(A,B)

Öffnen Sie einem Editor Ihrer Wahl (xemacs, nedit) und speichern Sie die Datei unter dem Namen logic.py ab. Achten Sie beim Schreiben darauf, dass Sie Tabulatoren (TAB-Taste) und nicht Leerzeichen zur Formatierung verwenden. Das Modul enthält neben der Funktionsdeklaration ein Hauptprogramm, welches zum Test verwendet wird. Die Dokumentation geschieht mit den sogenannten Docstrings, die sich innerhalb der drei Anführungszeichen befindet. In einer for-Schleife werden die möglichen Logik-Kombinationen überprüft. Die Print-Ausgabe wird mit Tabulatoren formatiert. Kommentare werden mit einem Doppelkreuz eingeleitet.

Starten Sie IPython und überprüfen Sie Ihr Programm. Vergleichen Sie das Ergebnis mit der entsprechende scipy-Funktion.

In [1]: from logic import xor
In [2]: xor(False,False)
Out[2]: False
In [3]: xor(True,False)
Out[3]: True
In [4]: run xor
A B A xor B
False False False
False True True
True False True
True True False
In [5]: help(xor)
In [1]: from scipy import logical_xor
In [2]: logical_xor(True,True)
Out[2]: False

Loesung

Dictionaries

a)

Programmieren Sie eine Datums-Funktion, die die Zahl eines Monats im Jahr zurückliefert, wobei das Argument ein String (z.B. ’Oktober’) und der Rückgabewert ein Integer sein soll.

Loesung

b)

Verwenden Sie die String-Methoden .upper() oder .lower() um Groß- und Kleinschreibung zu berücksichtigen.

Loesung

c)

Programmieren Sie die Inversfunktion (Integer -> String).

Loesung

Range

Wie lautet der entsprechende range() Ausdruck für folgende Listen?

[1, 3, 5, 7, 9]
[5, 8, 11, 14, 17]
[19, 18, 17, 16, 15, 14, 13]

Loesung

Listen und Strings

Schreiben Sie ein Programm, welches eine Textdatei einliest und die darin enthaltenen Wörter entsprechend der Häufigkeit des Auftretens sortiert.

Lösungshilfe: Einlesen einer Datei in einen String s

s=file(’test.txt’).read()

Die Methode .split(arg) zerteilt einen String in eine Liste. Die Methode .count(arg) ermittelt die Häufigkeit. Sortieren gelingt mittels der Methode .sort() (in place).

Loesung

SciPy Routinen

a)

Welche Subpackages sind im scipy Modul enthalten?

Loesung

b)

Was für Funktionen enhalten die Subpackages io, ndimage, signal, stats? Nennen Sie jeweils 5 Beispiele

Loesung

c)

Wie wird der Laplace-Filter berechnet (siehe Sourcecode)

Loesung

LehreWiki: SiaExercisesLesson1 (last edited 2008-04-12 15:48:14 by anonymous)