鱼C论坛

 找回密码
 立即注册
查看: 3164|回复: 17

第20课 作业 动动手中的 疑问

[复制链接]
发表于 2016-11-16 23:25:44 | 显示全部楼层 |阅读模式
20鱼币
用已学过的只是编写程序,统计下边这个长字符串中各个字符出现的次数并找到小甲鱼送给大家的一句话

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)

麻烦给一步一步讲解下吧  看不懂了。。。0基础初学者,多谢多谢

最佳答案

查看完整内容

str1 = '''拷贝过来的字符串''' # 将字符串赋值给str1 list1 = [] # 先创建一个空的列表,为了后面将字符串一个一个装进去 #下面是一个for循环 for each in str1: # each表示每一个来自str1的字符,每一个字符,会走一遍后边的代码 if each not in list1: # 如果每一次,each不在list1中,也就是说不能重复统计,已经装进列表的就不统计了 if each == '\n': # 如果每一 ...
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-16 23:25:45 | 显示全部楼层
本帖最后由 人zai旅途 于 2016-11-17 00:04 编辑

str1 = '''拷贝过来的字符串'''   # 将字符串赋值给str1
list1 = []         # 先创建一个空的列表,为了后面将字符串一个一个装进去
             #下面是一个for循环
for each in str1:         # each表示每一个来自str1的字符,每一个字符,会走一遍后边的代码
    if each not in list1:    # 如果每一次,each不在list1中,也就是说不能重复统计,已经装进列表的就不统计了
        if each == '\n':      # 如果每一次,each等于'\n',就是换行符,换行符也是一个字符,只不过在str1看不见
            print('\\n', str1.count(each)) # 统计'\n'的时候,打印(\n,次数);这里'\\n',第一个\表示强制转义;str1.count(each)表示统计str1中             each出现的次数
        else:       # 条件语句,除了统计'\n'的时候,需要按照上面的方式处理,其余的字符都要按照下面的方式处理
            print(each, str1.count(each))   # 打印 (字符本身,出现的次数)
        list1.append(each)      # 统计完了以后,把这个each加入到列表list1中(因为有if each not in list1,这句,起到了重复字符筛选的作用,所以列表中字符不重复)

        >>>
RESTART: C:/Users/Administrator/Desktop/统计字符.py
% 6104
$ 6046
@ 6157
_ 6112
^ 6030
# 6115
) 6186
& 6043
! 6079
+ 6066
] 6152
* 6034
} 6105
[ 6108
( 6154
{ 6046
\n 1219
G 1
O 2
D 1
L 1
U 1
C 1
K 1
>>> list1
['%', '$', '@', '_', '^', '#', ')', '&', '!', '+', ']', '*', '}', '[', '(', '{', '\n', 'G', 'O', 'D', 'L', 'U', 'C', 'K']
>>>


        

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
图灵的烟头 + 5 + 5 感谢您的耐心回答~~

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-17 00:06:53 | 显示全部楼层
楼主看看我的回复是否还有不明白的,可以继续交流哈

满意设置最佳答案哈!!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-17 08:03:51 | 显示全部楼层
跟着学习!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-17 08:09:43 | 显示全部楼层
你要思考如果是你如何判断字符重复的问题。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-17 09:17:23 | 显示全部楼层
过来学习,不过这类问题还是自己要看懂,然后自己动手写一个,才能知道自己哪个地方不懂,新上不能急,还是一步步来比较好
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-17 10:08:27 | 显示全部楼层
一楼的答案好清楚
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-17 10:36:21 | 显示全部楼层
首先for each in str1: 这句话是遍历整个字符串,
然后if each not in list1:这句话判断each是否已存在列表list1当中,
       1 如果存在,就跳过下面的语句,继续下一次循环,
      
       2 如果不存在,再判断是否为'\n'
                            如果是,就'\n'和'\n'在str1中的出现次打印出来
                            如果不是,也要打印字符each和each在str1中的出现次打印出来

这里判断'\n'是因为它是非显示字符,需要另行处理,不然的话,直接打印会换行
如果还是不理解,那就@我吧
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-11-17 21:19:46 | 显示全部楼层
人zai旅途 发表于 2016-11-17 00:01
str1 = '''拷贝过来的字符串'''   # 将字符串赋值给str1
list1 = []         # 先创建一个空的列表,为了 ...

感谢感谢啊  你学的真好,我前面学的还是不好啊 非常感谢你的讲解,很详细
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-11-17 21:22:26 | 显示全部楼层
三少爷 发表于 2016-11-17 08:09
你要思考如果是你如何判断字符重复的问题。。。

恩恩  非常感谢你 正确引导我的思路  多谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-11-17 21:23:50 | 显示全部楼层
SSSpython 发表于 2016-11-17 09:17
过来学习,不过这类问题还是自己要看懂,然后自己动手写一个,才能知道自己哪个地方不懂,新上不能急,还是 ...

是呀 得动手才行  加油加油吧!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-17 21:25:14 | 显示全部楼层
时光时光 发表于 2016-11-17 21:19
感谢感谢啊  你学的真好,我前面学的还是不好啊 非常感谢你的讲解,很详细

不客气,满意就设置个最佳答案,主要是技术值。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-11-17 21:26:54 | 显示全部楼层
Damn_it 发表于 2016-11-17 10:36
首先for each in str1: 这句话是遍历整个字符串,
然后if each not in list1:这句话判断each是否已存在列表 ...

非常非常感谢,个人原因没及时看回复,最佳 只能选个最早的满意答案了,依然感谢感谢你!!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-11-17 21:28:11 | 显示全部楼层
人zai旅途 发表于 2016-11-17 21:25
不客气,满意就设置个最佳答案,主要是技术值。

当然当然
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-17 21:31:52 | 显示全部楼层
谢谢楼主信任。
我也是零基础学习的,现在是第二轮进行到函数、递归,越往后边越难,关键是除了视频,还要动脑自己思考,动手写写看,再就是课后题,最好每题都搞懂,不过课后题有点坑的是,都会用到后面的知识
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-17 23:15:54 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-11-17 23:28:41 | 显示全部楼层
人zai旅途 发表于 2016-11-17 21:31
谢谢楼主信任。
我也是零基础学习的,现在是第二轮进行到函数、递归,越往后边越难,关键是除了视频,还要 ...

非常感谢你的讲解 和你传授的学习方法  我努力
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-4-15 13:16:13 | 显示全部楼层
谢谢  看懂了  很详细的讲解
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-14 16:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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