#2
24.12.2016 um 23:45 Uhr
Hi,
vielen Dank für deinen Kommentar. Das glaube ich dir, ich bin gerad selbst kaum noch durchgestiegen :o)
Ja meine Variablen-Benennungen sind wohl öfter suboptimal.
Die "Ist-Großbuchstabe-Abfrage" nach unten zu verschieben ist genial. Da habe ich brutal überflüssigen Code produziert - aua...
Die result Variable muss ich allerdings schon initialisieren, sonst kann ich am Ende (result = result + nWord + "-" + fChar + "ay ") nicht damit arbeiten bzw. bekomme eine Fehlermeldung. Es sei denn ich habe wieder irgendwas übersehen.
Grüße vom
Nachbar
Korrigierter Code:
[Python]def piglatin(piginput):
qu = "qu", "QU"
v = "a", "e", "i", "o", "u","A", "E", "I", "O", "U"
k = "b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z", "B", "C", "D", "F", "G", "H", "J", "K", \
"L", "M", "N", "P", "Q", "R", "S", "T", "V", "W", "X", "Y", "Z"
result = ""
pigexpression = piginput.split()
for letter in pigexpression:
# 3 Konsonanten
if letter[0] in k and letter[1] in k and letter[2] in k:
fChar = letter[0:3]
nWord = letter[3:]
# 2 Konsonanten
elif letter[0] in k and letter[1] in k:
fChar = letter[0:2]
nWord = letter[2:]
# Vokal
elif letter[0] in v:
fChar = ""
nWord = letter
# qu
elif letter[0:2] in qu:
fChar = letter[0:2]
nWord = letter[2:]
# 1 Konsonant
else:
fChar = letter[0:1]
nWord = letter[1:]
if letter[0].isupper():
nWord = nWord.capitalize()
fChar = fChar.lower()
result = result + nWord + "-" + fChar + "ay "
return result
expression = raw_input("Please enter a word: ")
print "\nPiglatin: " + piglatin(expression)[/Python]
398 0