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