defguess_vocabs_BUT_AWESOME(cipher,dictionary):# cipher: zu entschlüsselnde Chiffre, dictionary: Wortliste im Morsecode
defguess_vocabs_BUT_AWESOME(cipher,dictionary,min_vocab_len=0,max_word_count=0):# cipher: zu entschlüsselnde Chiffre, dictionary: Wortliste im Morsecode
length=len(cipher)
ifmax_word_count==0:max_word_count=length# Bei Standardwert 0 wird max_word_count so hoch gesetzt, dass es de facto keine Einschränkung macht.
phrase_kit=[[]forxinrange(length+2,0,-1)]
phrase_kit[length+1]=""
print(phrase_kit)
foriinrange(length,0,-1):# vom hintersten Buchstaben an nach vorne wird die Chiffre in immer längere Schnipsel gehackt
query=cipher[i-1:length]# query: Schnipsel der Chiffre wird auf sinnvolle Worte getestet
forvocabindictionary:
ifvocab[0]==query[0:len(vocab[0])]:# wird ein passendes Wort gefunden und gibt es im phrase-kit Worte, die das gefundene Wort zur Länge des zu prüfenden Wortes ergänzen...
print("i = ",i," Appending to ",vocab[1])
ifvocab[0]==query[0:len(vocab[0])] \
andlen(vocab[1])>=min_vocab_len:# wird ein passendes Wort gefunden und gibt es im phrase-kit Worte, die das gefundene Wort zur Länge des zu prüfenden Wortes ergänzen...
print("i = ",i," Appending to ",vocab[1]," len = ",len(vocab[1]))