我看问题的角度停留在第一elif
:你想如何创建不包含单词中包含的前一个字母的单词?
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=""
结果不能使我满意:
{0: 'in', 1: 'th', 2: 'cuu', 3: 'th', 4: 'vd'}
任何帮助,将不胜感激。
根据你的问题的标题,你的输出是正确的。这些'单词'都不包含出现在单词前的单词。 – usr2564301
也许你想改变'如果单词不在词汇中:'用'如果单词不在词汇表中。():' –
“cuu”包含比我想要的多一个。 'vd'包含两个辅音。每一对两个字母只需要一个元音和一个辅音。 –