具体来说,用户输入一个单词。我想编制一个所有使用的元音和辅音的列表(不重复,只是每个使用的音符)。但是,我只想在找到单词中的最后一个元音之后开始统计辅音。当在前一个循环中找到某个字符时,如何开始一个新循环?
例如,如果输入是“hello”,它应该计数e,o,但没有辅音,因为在最后一个元音之后不存在辅音,并且计数元音= 2,辅音= 0。如果输入是“swarm”,它应该计算a,r,m,元音= 1,辅音= 2。 “书”会给你o,k,元音= 1,辅音= 1。
我希望程序能够满足其他条件,但这是第一步,也是最重要的一步。
这里是我的,但它不工作,因为我需要它(因为有字母表中的每个字母行,我只需要使用引号,以显示报表的延续):
for i, ch in enumerate(word):
if ch in VOWELS:
if ch=="a" and ch not in VL:
VL=VL+"a"
VC+=1
if ch=="e" and ch not in VL:
VL=VL+"e"
VC+=1
#" " for each other vowel
if ch not in VOWELS:
if ch=="b" and ch not in CL:
CL=CL+"b"
CC+=1
if ch=="c" and ch not in CL:
CL=CL+"c"
CC+=1
#" " for each other consonant
print(VL[1:])
print(VC)
print(CL[1:])
print(CC)
我已经尝试缩进辅音部分,只在元音搜索完成后才开始,但是,这似乎并不奏效。我需要索引最后一个元音的位置,然后启动辅音循环。
作为一个方面,我们只是在做非常基本的命令,比如布尔,串联和字符串方法。没有字典或列表或类似的东西。我很确定有一个简单的方法来做到这一点,但我似乎无法弄清楚。
啊!使用VL来计数VC要比每次添加到它的单独命令好得多。这绝对缩短了代码。向后循环应该可以做到这一点,尽管我必须以相反的顺序打印它们......它们需要在写入时按顺序出现在打印中。但是可以这样做:print(CL [-1:],right? – Marty
应该是print(CL [:: - 1]) – Marty
是的,你确实可以这样做,也可以改变CL + = word [-i-1]'到'CL = word [-i-1] + CL'而不是 – asongtoruin