对于一个学校项目,我必须写一个函数来计算一个字符串中的字母数,但也要计算一个特定字母的数目,然而它似乎只会增加指定字母的总字母数。我不明白为什么它没有注册ascii\u小写字母作为3.7中的小写字母,除非我完全误解了什么。你知道吗
def analyze_string(quote, search_letter):
count_letters = 0
count_occurance = 0
phrase = quote.lower()
letter = string.ascii_lowercase
length = len(phrase)
for i in phrase:
if i == letter:
count_letters = count_letters + 1
elif i == search_letter:
count_letters = count_letters + 1
count_occurance = count_occurance + 1
else:
count_letters = count_letters + 0
return count_letters, count_occurance
这条线有问题:
您已经通过
string.ascii_lowercase
为letter
分配了一个包含所有小写字母的字符串。但是i
只是一个字母。您可以改为使用:检查字符串的成员身份需要O(n)时间。您可能希望使用
set
通过转换将此值提前减少到O(1):然后需要反转
if
语句的顺序,以便优先检查search_letter
。否则,如果search_letter
存在于letter
,则第二个条件将永远不会满足。你知道吗注意以下行是多余的,您可以安全地删除它们:
相关问题 更多 >
编程相关推荐