这就是我正在努力做的事情。我有一些文本,我试图过滤它并只打印出元音最多的前十个单词。这只是我的代码的一部分,但这是我不断收到错误的唯一部分。我得到的错误是:不可排序的类型 NoneType() < int().... 当我尝试对单词进行排序时,我收到该错误。 (如果我不清楚或令人困惑,请告诉我)如何修复此错误(在我的 topTen 函数中)?这是我正在谈论的一小段代码:
def topTen(text):
words = textToWords(text)
words.sort(key=countVowels, reverse=True)
for ctr in range(10):
print(words[ctr])
def textToWords(T):
W = []
for line in T:
words = line.split()
for word in words:
W.append(word.lower())
return W
def countVowels(st):
ctr = 0
for ch in st:
if ch in "aeiou":
ctr =+ 1
return ctr
最佳答案
countVowels 的最后一行缩进不正确。当执行 if 语句时,函数将返回 1;当 if 语句从未被采用(该单词不包含元音)时,该函数返回 None。重新缩进 return ctr,使其位于循环之外,我认为该程序可以工作。
关于python - 计算字符串中的元音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22468153/