import re
n = input('type some word:').lower()
z = {w:len(re.split('(?<![a-z])'+w+'(?![a-z])',n))-1 for w in set(re.findall('[a-z]+',n))}
print('\n'.join('单词“'+w+'”出现了'+str(z[w])+'次' for w in z))
n = input('type some word:').lower()
将录入的内容全部转换成小写,避免因单词位置不同,产生的大小写区分现象,例如 That is a ball,that is my ball.
re.findall('[a-z]+',n)
将录入的内容用正则提取出所有单词,这里不提取连写、多单词'连接,有需要可以修改正则'[a-z]+'的部分
re.findall得到的是一个list,可出现重复内容,外边加个set,就编程集合了,他自动就排重了
然后遍历这个集合,用单词做键,用正则使用单词切割录入的字符串,得到的列表长度减1就是单词出现次数,单词和出现次数组成词典,放到一个大列表里
然后对列表进行遍历,拼接输出内容,并在列表拼接的内容之间加一个回车,就得到最终结果了
s = input()
s = s.lower()
s = s.split(" ")
total = {}
for i in s:
i = i.strip('.').strip(',').strip('!').strip('"')
if total.get(i,0):
total[i] += 1
else:
total[i] = 1
for key,value in total.items():
print("单词{}出现的次数:{}".format(key,value))
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m