Ich sehe den Punkt der Frage bleibt in der ersten elif
:Wie kann ich ein Wort erstellen, das den vorherigen Buchstaben des Worts nicht enthält?
import random as rnd
vowels="aeiou"
consonants="bcdfghlmnpqrstvz"
alphabet=vowels+consonants
vocabulary={}
index=0
word=""
positions=[]
while index<5:
random_lenght=rnd.randint(2,5)
while len(word)<random_lenght:
random_letter=rnd.randint(0,len(alphabet)-1)
if len(word)==0:
word+=alphabet[random_letter]
elif random_letter != positions[-1] and len(word)>0:
if word[-1] not in vowels:
word+=alphabet[random_letter]
if word[-1] not in consonants:
word+=alphabet[random_letter]
elif random_letter == positions[-1]:
break
if random_letter not in positions:
positions.append(random_letter)
if word not in vocabulary:
vocabulary[index]=word
index+=1
word=""
Das Ergebnis mich nicht befriedigen, wie Sie annehmen:
{0: 'in', 1: 'th', 2: 'cuu', 3: 'th', 4: 'vd'}
Jede Hilfe würde geschätzt.
Nach Ihrer Frage Titel, ist die Ausgabe korrekt. Keines dieser "Wörter" enthält Zeichen, die in dem Wort davor vorkommen. – usr2564301
Vielleicht möchten Sie 'wenn Wort nicht im Wortschatz ändern:' mit 'wenn Wort nicht im Vokabular.Values ():' –
"Cuu" enthält eine mehr u als ich will. 'vd' enthält zwei Konsonanten. Ich möchte nur einen Vokal und einen Konsonanten für jedes Paar von zwei Buchstaben. –