只爱整活周淑怡 发表于 2020-7-27 23:19:19

课后作业20讲动动手

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

答案: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)


这流程没整明白,有大佬能解释下嘛

Twilight6 发表于 2020-7-27 23:46:29



看注释吧:

str1 = '''拷贝过来的字符串'''
list1 = []# 用来记录统计过的字符,之后就不在统计这个列表含有的字符

for each in str1:   # 循环甲鱼哥给的字符串内容
   
    if each not in list1:   # 如果循环到的字符不在列表中,说明还没统计过这个字符的个数
      if each == '\n':    # 如果是换行符,就需要 \ 转义才能打印出 \n 所以需要单独列出,否则直接打印 \n 是换行作用
            print('\\n', str1.count(each))   # 打印统计的换行符个数
            
      else:               # 不是换行符,就不需要转义,直接打印即可
            print(each, str1.count(each))    # 打印统计的其他符号的个数
      list1.append(each)# 将统计完成的字符,加入列表,下次就不在打印统计结果

只爱整活周淑怡 发表于 2020-7-28 00:05:14

Twilight6 发表于 2020-7-27 23:46
看注释吧:

小甲鱼给的字符串是这种类型的:

%%$@_$^__#)^)&!_+]!*@&^}@[@%]()%+$&[(_@%+%$*^@$^!+]!&_#)_*}{}}!}_]$[%}@[{_@#_^{*
@##&{#&{&)*%(]{{([*}@[@&]+!!*{)!}{%+{))])[!^})+)$]#{*+^((@^@}$[**$&^{$!@#$%)!@(&
+^!{%_$&@^!}$_${)$_#)!({@!)(^}!*^&!$%_&&}&_#&@{)]{+)%*{&*%*&@%$+]!*__(#!*){%&@++
!_)^$&&%#+)}!@!)&^}**#!_$([$!$}#*^}$+&#[{*{}{((#$]{[$[$$()_#}!@}^@_&%^*!){*^^_$^

我还想以为是乱码了。。。

Twilight6 发表于 2020-7-28 07:31:25

只爱整活周淑怡 发表于 2020-7-28 00:05
小甲鱼给的字符串是这种类型的:

%%$@_$^__#)^)&!_+]!*@&^}@[@%]()%+$&[(_@%+%$*^@$^!+]!&_#)_*}{}}!} ...

哈哈,不是哈,就是这样滴~
页: [1]
查看完整版本: 课后作业20讲动动手