程序通过循环遍历word
字符串来确定字符串word
中的元素之一是否为辅音,然后每次迭代遍历word
字符串,遍历consonants
列表并比较word
字符串中的当前元素是否等于consonant
列表中的当前元素。你知道吗
如果是,则word
字符串的当前元素是一个辅音,并打印该辅音(不是辅音的索引,而是实际的辅音,例如“d”。)
问题是,我得到的是:
1
1
我做错什么了?嵌套循环不应该这样工作吗?这样下面的循环就可以为上面循环中的每个元素迭代每个元素?也就是说,上面的每个索引使下面的循环遍历每个索引?你知道吗
这就是程序:
word = "Hello"
consonants = ['b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'z']
for character in range(len(word)):
for char in range(len(consonants)):
if consonants[char] == word[character]:
consonant = word[character]
print consonant
你误读了输出。字符是小写字母L,而不是数字1。你知道吗
换句话说,您的代码是按设计工作的。大写字母
H
不在consonants
列表中,但Hello
中的两个小写字母l
是。你知道吗请注意,在这里使用
set
来表示consonants
会更有效;您不必遍历整个列表,只需使用in
来测试成员身份。这也适用于列表,但对于集合来说效率更高。如果将word
值小写,还可以匹配H
。你知道吗最后但并非最不重要的一点,您可以直接循环
word
字符串,而不是使用range(len(word))
,然后使用生成的索引:演示:
相关问题 更多 >
编程相关推荐