Übungsaufgaben 11

Programmierstil

Übungsaufgabe 11.01: Code lesen

Nehmen Sie Ihre Programme freq.py (Übungsaufgabe 07.02) und chatbot.py (Übungsaufgabe 08.03). Lesen Sie den Code. Verstehen Sie ihn noch? Ändern Sie gegebenenfalls den Code, um ihn besser lesbar zu machen. Stellen Sie auf jeden Fall sicher, dass die Variablennamen sinnvoll sind.

Übungsaufgabe 11.02: PEP 8

Benutzen Sie das Kommandozeilenprogramm pep8, um zu prüfen, ob freq.py und chatbot.py gemäß PEP 8 formatiert sind. Verbessern Sie die Formatierung, bis pep8 ohne Warnungen durchläuft.

Wenn pep8 nicht installiert ist, können Sie es wie folgt installieren:

$ easy_install3 --user pep8

Übungsaufgabe 11.03: Stilfehler korrigieren

Gegeben sei eine zweispaltige Datei (telefonbuch.txt), in der in der ersten Spalte Namen von Personen stehen und in der zweiten Telefonnummern. Getrennt sind die Spalten durch Semikola:

Tim;7852
Mona;7610
Lena;7612
Anna;7554

Das folgende Programm liest diese Datei und stellt dann ein TUI zur Verfügung, mit dem man Telefonnummern zu bestimmten Personen heraussuchen kann:

# Read file
f = open('telefonbuch.txt')
names = []
numbers = []
for name in f:
    name = name.rstrip()
    fields = name.split(';')
    a = fields[0]
    b = fields[1]
    names = names + [a]
    numbers = numbers + [b]
f.close()

# Create dictionary
tb = {}
for i in range(len(names)):
    for j in range(len(numbers)):
        if i == j:
            tb[names[i]] = numbers[j]

# Present TUI
while True:
    name = input('Name: ')
    if not name:
        break
    if name not in tb:
        print('Tut mir Leid, die Telefonnumer von ' + name + ' ist nicht bekannt.')
    else:
        print('Telefon: ' + tb[name])

Welche Stilfehler beeinträchtigen die Effizienz und Lesbarkeit dieses Programms? Korrigieren Sie diese Fehler.