python第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
我的疑问是比如%出现了6104次, 打印的不是不是应该打印6104次么,为什么是 一个%,后面跟个6104这个数字,难道不是应该 6104个 %,后面跟个6104个数字么
print(each, str1.count(each))
这里,each是字符
后面count出来的是次数
结果当然是你说的那种格式了 昨非 发表于 2021-1-13 14:17
print(each, str1.count(each))
这里,each是字符
后面count出来的是次数
比如说%,他遍历了6104个%,不应该打印6104个% 么,为什么只打印了1个 .count()方法返回的是该元素出现的次数,类型是int
>>> string = 'abbcccdddd'
>>> string.count('a')
1
>>> string.count('b')
2
>>> string.count('c')
3
>>> string.count('d')
4
>>> type(string.count('d'))
<class 'int'> 妙脆角 发表于 2021-1-13 14:19
比如说%,他遍历了6104个%,不应该打印6104个% 么,为什么只打印了1个
遍历的过程只改变了str.count的值
并不打印字符
真正打印字符的只有最后一次 本帖最后由 jackz007 于 2021-1-13 14:37 编辑
print(each, str1.count(each))
打印出来的信息应该 "长" 什么样由上面这条语句决定。
这个 print() 先打印 each,就是被统计的字符,然后是一个空格(print() 多参数打印时,会自动在各个参数的输出内容之间添加一个空格进行分隔),然后是 str1 . count(each),就是一个数字。
当然,也可以按你所希望的样子来输出信息,代码就得改动了:
str1 = '''拷贝过来的字符串'''
list1 = []
for each in str1:
if each not in list1:
if each == '\n':
print(str1 . count(each) , '个 \\n')
else
print(str1 . count(each) ,'个' , each)
不过,这样打印出来看上去会很乱,不如原来的那样,十分的整齐,前面是字符,后面是统计个数。 昨非 发表于 2021-1-13 14:21
遍历的过程只改变了str.count的值
并不打印字符
真正打印字符的只有最后一次
我就是想知道遍历的过程为什么不打印字符了{:5_109:} 妙脆角 发表于 2021-1-13 14:53
我就是想知道遍历的过程为什么不打印字符了
你所说的遍历(计数)的过程是在count函数内部完成的
在你控制的循环遍历(for)中,
只对新出现的字符进行了计数并加入列表存储
而已经计数过的,都被if语句给pass了
页:
[1]