【发布时间】:2014-08-14 18:46:21
【问题描述】:
这段代码看起来应该可以工作。它总结了“条纹”(字母-辅音-字母等)的单词数,然后返回总和。但是,当我使用 print (striped("My name is ...") ) 对其进行测试时,它只计算 my 和 is 并给我一个 2 而不是 3 的总和...为什么缺少 name?
VOWELS = "AEIOUY"
CONSONANTS = "BCDFGHJKLMNPQRSTVWXZ"
def striped(text):
my_sum = 0
text = text.replace(".", " ").replace(",", " ").split()
vowels = VOWELS.lower()
consonants = CONSONANTS.lower()
for word in text:
word = word.lower()
if ((word[::2] in vowels and word[1::2] in consonants)\
or (word[::2] in consonants and word[1::2] in vowels))\
and len(word) > 1:
print (word)
my_sum += 1
return my_sum
【问题讨论】:
-
也不要使用
sum!阴影内置 -
好的,现在也改变了!仍然无法正常工作...而且我一直为此使用 sum,到目前为止它没有给我带来任何问题...?
-
你应该已经修复了缩进。
-
再次剪切和粘贴错误...已修复
-
@ejLev 哦,对不起,我只是指出,如果你有一组东西,你可以生成互补集,而不是硬编码。换句话说,如果你有一组元音,那么这组辅音只是互补集(在大写 ascii 字母的宇宙中)。所以你可以生成它,而不是硬编码它。当集合更大时,这具有更大的价值。 :)
标签: python python-3.x slice