etap 发表于 2020-8-16 21:03:15

函数修改 求助大佬

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)

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

假如我想输出的是‘ \ ’和 ‘n ’ 的字符个数 这个程序应该怎么改呢

sunrise085 发表于 2020-8-16 21:15:32

本帖最后由 sunrise085 于 2020-8-16 21:22 编辑

不用修改啊,这个程序可以统计'\' 和'n'的个数
只是有一点,你可能有误解
'\'在字符串中是'\\',字符串中出现的'\n'你是不可能分开统计的,因为那本身就是一个字符,而非两个字符。这是规定。
你若想强行把'\n'当做两个字符的话,也是可以的。
你看看这是你想要的吗?
str1 = '''an\nb\\cn'''
list1 = ['\n']

for each in str1:
      if each not in list1:
                if each =='\\':
                        print(each, str1.count(each)*2+str1.count('\n'))
                elif each=='n':
                        print(each, str1.count(each)+str1.count('\n'))
                else:
                        print(each, str1.count(each))
                list1.append(each)
运行结果:
a 1
n 3
b 1
\ 3
c 1

etap 发表于 2020-8-16 21:53:26

sunrise085 发表于 2020-8-16 21:15
不用修改啊,这个程序可以统计'\' 和'n'的个数
只是有一点,你可能有误解
'\'在字符串中是'\\',字符串中 ...

好的 我再想想 谢谢大佬
页: [1]
查看完整版本: 函数修改 求助大佬