python练习题
1、统计词频
# 统计词频
def words_count(str):
str_list = str.replace('\n','').lower().split(' ')
count_dict = {}
# 如果字典里已经存在这个单词,则count+1
# 如果没有则放入字典
for str in str_list:
if str in count_dict.keys():
count_dict[str] = count_dict[str] + 1
else:
count_dict[str] = 1
count_list = sorted(count_dict.items(),key=lambda x:x[1],reverse=True)
return count_list
str_txt = """hello world hello"""
print(words_count(str_txt))
#注意用split切割的时候 不要忘记加空格
#否则会报错ValueError: empty separator
#正确运行的结果
[('hello', 2), ('world', 1)]
2、类装饰器
首先要知道__init__方法的执行是由创建对象触发的,而__call__方法的执行是由对象后加括号触发的。
class ClsDeco(object):
def __init__(self,fun):
self.fun = fun
def __call__(self, *args, **kwargs):
print('为函数添加额外的功能')
self.fun()
@ClsDeco # test = ClsDeco(test)
def test():
print('test')
test()
# 运行结果
为函数添加额外的功能
test

浙公网安备 33010602011771号