你大概是被for ,if ,缩进,给搞懵逼了。 这段代码,可以精简为以下结构(暂时把中间的 if .... else ...结构去掉):
for ......:
if ......:
list1.append(x)
这是一个以 判断结构 为循环体的for 语句。
for.... 的作用是把 str1的每个字符都 循环一遍,每个不同的值用 each 表示;循环一个值,就执行循环体(判断结构),如果这个值不在list1里,就把它添加进 list1,就是这么简单呀。
顺便再摊开
if each == '\n':
print('\\n', str1.count(each))
else:
print(each, str1.count(each))
这段代码来讲,你可以把它看做一句代码: print(each,str1.count(each))
意思是:如果这个值不再list1里,即是没统计过的,那我就需要 打印这个字符,并且计算它的次数呀。
把第10行注释掉,list1一直是空列表,str1的每一个字符都需要执行一次 print(each, str1.count(each)),所以就满屏幕都是了,哪怕是重复的字符也要继续执行这一句。