零基础入门第20讲里计算字符出现字数的课后练习,如何区分开不同字符的呢?
问题:请用已学过的知识编写程序,统计下边这个长字符串中各个字符出现的次数并找到小甲鱼送给大家的一句话。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-29 21:13
不是区分不同字符,只是统计换行符而已
那请问这段代码是如何区分开各种符号的呢...没看明白 这段代码中 list1 起到了去重的作用,当 each 不在 list1 代表还没有打印过 each 以及 each 在字符串中出现的次数,打印完成后件 each 添加到 list1 中,表示已经打印过了,避免重复打印。
加个 if each == '\n' 是因为当 each 为换行符时结果显示会出问题。 zltzlt 发表于 2020-4-30 13:15
这段代码中 list1 起到了去重的作用,当 each 不在 list1 代表还没有打印过 each 以及 each 在字符串中出现 ...
好像有点懂了,我再琢磨琢磨,谢谢!!
页:
[1]