提示用户,直到输入5个独特的元音或辅音

时间:2017-09-24 21:13:40

标签: python

代码的目的最好在下面解释,例如,如果我输入'hello'然后'运气'然后'骗子',正确的输出应该是'5''eouia'3'和'ckr'。当我这样做但它在进入'骗子'后不断提示我输入更多。

loadURL()

2 个答案:

答案 0 :(得分:1)

我会保留所有必需元音的set并减去你输入的所有字母,直到该集合为空:

VOWELS = 'aeiou'

vowelsSoFar = set(VOWELS)

while vowelsSoFar:
    word = input('enter a word: ')
    vowelsSoFar -= set(word)
    # Feel free to print out the remains vowels, for example

答案 1 :(得分:0)

您可以使用列表推导来获取元音并返回len

<强>代码

import itertools as it


words =  'hello', 'luck', 'liar'

seen_vowels = "".join(c for w in words for c in w if c in "aeiou")
seen_vowels
# 'eouia'

len(seen_vowels)
# 5 

可以通过每个反转词的takewhile找到尾随辅音。

trailing_cons = "".join("".join(it.takewhile(lambda x: x not in "aeiou", w[::-1]))[::-1] for w in words)
trailing_cons
# 'ckr'

<强>详情

注意,takewhile在第一个观察到的元音之前抓住所有辅音。通过颠倒每个单词,我们得到尾随辅音。

"".join(it.takewhile(lambda x: x not in "aeiou", "luck"[::-1]))
# 'kc'