鱼C论坛

 找回密码
 立即注册
查看: 845|回复: 4

[已解决]零基础入门第20讲里计算字符出现字数的课后练习,如何区分开不同字符的呢?

[复制链接]
发表于 2020-4-29 14:22:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
问题:请用已学过的知识编写程序,统计下边这个长字符串中各个字符出现的次数并找到小甲鱼送给大家的一句话。

str1 = '''拷贝过来的字符串'''
list1 = []

for each in str1:
    if each not in list1:
        if each == '\n':
            print('\\n', str1.count(each))
        else:
            print(each, str1.count(each))
        list1.append(each)


运行结果:

% 6104
$ 6046
@ 6157
_ 6112
^ 6030
# 6115
) 6186
& 6043
! 6079
+ 6066
] 6152
* 6034
} 6105
[ 6108
( 6154
{ 6046
\n 1219
G 1
O 2
D 1
L 1
U 1
C 1
K 1


请问 if each == '\n':  这一段中,为何只使用\n就可以区分开各种不同的字符了呢? \n不是换行的作用吗?
最佳答案
2020-4-30 13:15:44
这段代码中 list1 起到了去重的作用,当 each 不在 list1 代表还没有打印过 each 以及 each 在字符串中出现的次数,打印完成后件 each 添加到 list1 中,表示已经打印过了,避免重复打印。

加个 if each == '\n' 是因为当 each 为换行符时结果显示会出问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-29 21:13:25 | 显示全部楼层
不是区分不同字符,只是统计换行符而已
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-30 12:32:56 | 显示全部楼层
永远的渣滓 发表于 2020-4-29 21:13
不是区分不同字符,只是统计换行符而已

那请问这段代码是如何区分开各种符号的呢...没看明白
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-30 13:15:44 | 显示全部楼层    本楼为最佳答案   
这段代码中 list1 起到了去重的作用,当 each 不在 list1 代表还没有打印过 each 以及 each 在字符串中出现的次数,打印完成后件 each 添加到 list1 中,表示已经打印过了,避免重复打印。

加个 if each == '\n' 是因为当 each 为换行符时结果显示会出问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-5 12:57:38 | 显示全部楼层
zltzlt 发表于 2020-4-30 13:15
这段代码中 list1 起到了去重的作用,当 each 不在 list1 代表还没有打印过 each 以及 each 在字符串中出现 ...

好像有点懂了,我再琢磨琢磨,谢谢!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-27 02:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表