带有字典的函数,该函数以字符串作为输入并计算每个字母出现的次数

时间:2019-03-14 03:00:48

标签: python

我做了一个我相信会带一个字符串并返回每个字母在“我爱Python”一词中出现多少次的函数,但是当我运行代码时:

def countletters(s):
    s = s.lower()
    letters = {'I' :0, 'l':0, 'o':0, 'v':0, 'e':0, 'P':0, 'y':0, 't':0, 'h':0, 'o':0, 'n':0}
    for char in s:
        if char in letters:
            letters[char]+=1
    return letters

def printResults(result_dict):
    print

所有输出窗口显示的是我的输入,而没有输出,使我相信我的打印方法不正确,但是我的代码还有其他错误吗?

2 个答案:

答案 0 :(得分:0)

我注意到您的代码中存在一些错误:

def countletters(s):
s = s.lower()

首先,s = s.lower()行应缩进。

第二,在字典中,由于字符串"I"已更改为所有小写字母,因此应将键s更改为“ i”。

此外,在您的其余代码中,还有许多错误:     def printResults(result_dict):     打印

错误1:result_dict

您已将result_dict设置为printResults函数的参数。应该使用这个。否则会浪费。

错误2:缩进

您应该在printResults函数内使用制表符或四个空格来缩进代码。

错误3:打印

print函数需要使用括号()来告诉Python打印什么。

错误4:同时打印

您不使用该打印功能进行任何打印。也许更改为使用countletters打印print(result_dict)函数的结果。

此外,您应该运行printResults并使用countletters返回的内容作为参数。例如:

printResults(countletters("I love python"))

错误5:功能

为了使用函数内部的代码,您需要调用它们。例如:

countletters("I love python")

编辑:Barmar已为您修复了缩进。

答案 1 :(得分:0)

如果您的示例字符串是

第1步:

s = 'i love python'

您的功能是:

def countletters(s):
    s = s.lower()
    letters = {'i' :0, 'l':0, 'o':0, 'v':0, 'e':0, 'p':0, 'y':0, 't':0, 'h':0, 'o':0, 'n':0}
    for char in s:
        if char in letters:
            letters[char]+=1
    return letters

第2步:

结果:

print(countletters(s))

>>> {'i': 1, 'l': 1, 'o': 2, 'v': 1, 'e': 1, 'p': 1, 'y': 1, 't': 1, 'h': 1, 'n': 1}