qin_yin 发表于 2020-8-30 22:02:11

这里if each 等于'\n'是什么意思?

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)

luyantl 发表于 2020-8-30 22:03:26

\n   是表示回车 换行

1q23w31 发表于 2020-8-30 22:04:34

if each == '\n':#判断each是否等于换行符,如果是执行print语句,不是,执行else语句
            print('\\n', str1.count(each))
      else:
            print(each, str1.count(each))

qin_yin 发表于 2020-8-30 22:08:18

1q23w31 发表于 2020-8-30 22:04


不是很理解等于换行符,我在想each,怎么会等于换行符呢

Twilight6 发表于 2020-8-30 22:11:20


因为你拷贝过来的字符串中有换行,所以 str1 中字符串就会有 \n 换行符,这个是属于不可见字符,所以你直接看字符串内容是找不到 \n 的

当你 for 循环到 \n 换行时候,因为你要打印 \n 字符,而不是换行效果,所以需要将 \n 单独取出判断

否则当 each 循环到 \n 的时候,直接打印 \n 会起到换行的效果,导致你最终打印结果会有一个空行,而且不会成功打印出 \n 字符

所有需要 \n 拿出来多加上一个 \ 来进行转义,才能将 \n 成功打印出来

疾风怪盗 发表于 2020-8-30 22:33:43

你把str1加个回车,再看下,就会发现有个each=='\n'判断成立了
str1 = '''拷贝过来
的字符串'''
list1 = []

for each in str1:
    if each not in list1:
      print(each == '\n')
      if each == '\n':
            print('\\n', str1.count(each))
      else:
            print(each, str1.count(each))
      list1.append(each)
print(list1)
页: [1]
查看完整版本: 这里if each 等于'\n'是什么意思?