鱼C论坛

 找回密码
 立即注册
查看: 1932|回复: 10

[已解决]求助20讲的课后习题

[复制链接]
发表于 2018-3-24 19:38:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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)

大佬们,这里的print('\\n',str1.count(each))
这里的   '\\n'    是什么意思?
最佳答案
2018-3-26 11:33:55
夏夜星空 发表于 2018-3-26 11:24
我不明白字符串里的每单个字符是被什么给分割来来计数的。

字符串 是有许多单个字符组成的,而单个字符在存储空间中的存储的是以其ascii码

比如你输入a ,它实际存储的61H,而不是字符'a',即占一个字节 8 byte,然后这个就相当于

把字符串的每个字符分隔开来了,比如你输入 fishc ,存储空间中实际存储是分开来存的,

就是 f 一个存储单元,对应一个地址, i 也是一样,所以,就相当于是将每个单个字符区分开了。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-3-24 19:41:04 | 显示全部楼层

回帖奖励 +2 鱼币

\\n打印效果是\n,不然\n就打印出换行了
你看看讲字符串转义字符那里
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-24 20:49:24 | 显示全部楼层

回帖奖励 +2 鱼币

这里的   '\\n'    是的意思是对于\n的转义,执行print('\\n', str1.count(each))这条语句

会打印一个 \n ,然后打印输出后面的内容,如果不转义的话,他会换一行,然后才在

输出后面的内容,你可以尝试一下差别。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-25 07:42:27 | 显示全部楼层

回帖奖励 +2 鱼币

'\\n'就是‘\n’的转义,如果是‘\n’就会换行。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-25 14:35:58 | 显示全部楼层
Zmynx_2017 发表于 2018-3-24 20:49
这里的   '\\n'    是的意思是对于\n的转义,执行print('\\n', str1.count(each))这条语句

会打印一个 \ ...

老哥,我还是不懂,为什么每单个字符就会被  \\n给 分隔开,后面的计数打印我知道,就还是不懂print('\\n')这个。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-25 20:27:36 | 显示全部楼层
夏夜星空 发表于 2018-3-25 14:35
老哥,我还是不懂,为什么每单个字符就会被  \\n给 分隔开,后面的计数打印我知道,就还是不懂print('\\n ...

我没太看明白你什么不理解,你既然知道后边是为什么打印的,

那每次打印后边内容前,都会打印一个\n啊,就这么简单啊,本来\n是换行符

你是用\对\n进行了转义,也就是\\n,这样\n就是一个普通字符了啊,就这么简单啊

你要是什么不明白,你说具体一点。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-26 09:01:02 | 显示全部楼层
你可以修改一下str 参数 看看输出
多在里面加几个回车
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-26 11:24:07 | 显示全部楼层
Zmynx_2017 发表于 2018-3-25 20:27
我没太看明白你什么不理解,你既然知道后边是为什么打印的,

那每次打印后边内容前,都会打印一个\n啊 ...

我不明白字符串里的每单个字符是被什么给分割来来计数的。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-26 11:30:32 | 显示全部楼层
Zmynx_2017 发表于 2018-3-25 20:27
我没太看明白你什么不理解,你既然知道后边是为什么打印的,

那每次打印后边内容前,都会打印一个\n啊 ...

我不明白字符串里的每单个字符是被什么给分割来来计数的。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-26 11:33:55 | 显示全部楼层    本楼为最佳答案   
夏夜星空 发表于 2018-3-26 11:24
我不明白字符串里的每单个字符是被什么给分割来来计数的。

字符串 是有许多单个字符组成的,而单个字符在存储空间中的存储的是以其ascii码

比如你输入a ,它实际存储的61H,而不是字符'a',即占一个字节 8 byte,然后这个就相当于

把字符串的每个字符分隔开来了,比如你输入 fishc ,存储空间中实际存储是分开来存的,

就是 f 一个存储单元,对应一个地址, i 也是一样,所以,就相当于是将每个单个字符区分开了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-26 19:12:40 | 显示全部楼层
Zmynx_2017 发表于 2018-3-26 11:33
字符串 是有许多单个字符组成的,而单个字符在存储空间中的存储的是以其ascii码

比如你输入a ,它实际 ...

老哥,谢谢你的悉心解答。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-9 18:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表