编写一个函数,统计在输入字符串中各个不同字符出现的频度(字符串中的合法字符为a~z的26个字母和0~9的10个数字)。\n\n要求测试该函数的功能。
时间: 2023-04-23 22:06:56 浏览: 62
函数代码如下:
```python
def count_chars_frequency(input_str):
frequency_dict = {}
for char in input_str:
if char.isalnum():
if char in frequency_dict:
frequency_dict[char] += 1
else:
frequency_dict[char] = 1
return frequency_dict
```
该函数接受一个字符串作为输入,返回一个字典,其中键为字符串中出现的不同字符,值为该字符在字符串中出现的次数。在函数中,我们首先创建一个空字典`frequency_dict`,然后遍历输入字符串中的每个字符。如果该字符是合法字符(即字母或数字),我们就检查它是否已经在字典中出现过。如果是,我们将该字符的计数器加1;否则,我们将该字符添加到字典中,并将计数器初始化为1。最后,函数返回统计结果。
为了测试该函数的功能,我们可以编写一些测试用例,例如:
```python
assert count_chars_frequency("hello world") == {'h': 1, 'e': 1, 'l': 3, 'o': 2, 'w': 1, 'r': 1, 'd': 1}
assert count_chars_frequency("123456789") == {'1': 1, '2': 1, '3': 1, '4': 1, '5': 1, '6': 1, '7': 1, '8': 1, '9': 1, '': 1}
assert count_chars_frequency("aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz") == {'a': 2, 'b': 2, 'c': 2, 'd': 2, 'e': 2, 'f': 2, 'g': 2, 'h': 2, 'i': 2, 'j': 2, 'k': 2, 'l': 2, 'm': 2, 'n': 2, 'o': 2, 'p': 2, 'q': 2, 'r': 2, 's': 2, 't': 2, 'u': 2, 'v': 2, 'w': 2, 'x': 2, 'y': 2, 'z': 2}
```
这些测试用例分别测试了输入字符串中包含不同字符的情况,以及输入字符串只包含字母或数字的情况。如果函数能够正确地统计字符出现的频度,那么这些测试用例应该都能通过。