Ein Beispiel:
Code:
if strFunktion[0] == '0': #Funktion in dualzahlen umwandeln
strFunktionsbits = '00'
elif strFunktion[0] == '1':
strFunktionsbits = '01'
elif strFunktion[0] == '2':
strFunktionsbits = '10'
elif strFunktion[0] == '3':
strFunktionsbits = '11'
else:
print('Da ist ein Fehler bei der Umwandlung der Funktion (Schleife) aufgetreten. Bitte nur Ziffern 0,1,2,3 eingeben!')
Was tut der Code?
Wandelt die möglichen Subadressen 0-3 in die entsprechende Bitfolge um.
Was haben alle If-Zweige gemeinsam?
Wandeln die jeweilige Subadresse in eine Binärzahl um: 0 -> 00, 1 -> 01, 2 -> 10, 3 -> 11
Vereinfachung
Umwandlung der Subadresse in Binärzahl generalisieren.
Code:
if int(strFunktion) not in range(0, 4):
raise Exception('Funktion muss zwischen 0 und 3 liegen!')
strFunktionsbits = format(int(strFunktion), '02b')
Von 10 auf 3 Zeilen und deutlich übersichtlicher. :-)
Aber genug Programmiertips, ist ja schließlich kein Python-Forum hier.
Gruß Joachim