鱼C论坛

 找回密码
 立即注册
查看: 1497|回复: 5

[已解决]第20讲的两道动手题我都搞不懂什么意思。

[复制链接]
发表于 2017-12-1 21:04:39 | 显示全部楼层 |阅读模式

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

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

x
1,统计各个串中字符出现的次数。
  1. str1 = '''拷贝过来的字符串'''
  2. list1 = []

  3. for each in str1:
  4.     if each not in list1:
  5.         if each == '\n':
  6.             print('\\n', str1.count(each))
  7.         else:
  8.             print(each, str1.count(each))
  9.         list1.append(each)
复制代码


2,找出符合条件的字母。1),每个密码为小写字母,2),它前后只有三个大写字母。
不明白。请大神赐教。

最佳答案
2017-12-1 21:40:09
1. 从“拷贝过来的字符串”(也就是 str1 )中用 for 循环迭代出每一个字符
        如果 这个字符(each)不在列表list1里面,
            同时如果,这个字符(each)是个换行符(\n)
                那么就统计一下这个换行符在这个字符串中出现了多少次(str1.count(each)这条语句的作用)
            然后把这个字符( each )添加到之前建立的空列表 list1 里面去(作用就是避免重复统计同一个字符)

比如:each 是字符“ S ”的话,就用count()方法统计一下它在 str1 中出现的次数,然后添加到 列表中去,下次就不会再统计字符 “ S ”了。


2. 找出符合条件的字母。这道题和上一题一样,需要在课后作业那里下载一个字符串。
你需要从这个字符串中找到符合条件的小写字母若干个,这个小写字母前后都有且只有三个大写字母。
也就是说当发现 “ t A X Q c P P T "这样的字符串时,字母 “ c ”就符合条件。在这个字符串中找到所有符合既定条件的小写字母就行了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-12-1 21:40:09 | 显示全部楼层    本楼为最佳答案   
1. 从“拷贝过来的字符串”(也就是 str1 )中用 for 循环迭代出每一个字符
        如果 这个字符(each)不在列表list1里面,
            同时如果,这个字符(each)是个换行符(\n)
                那么就统计一下这个换行符在这个字符串中出现了多少次(str1.count(each)这条语句的作用)
            然后把这个字符( each )添加到之前建立的空列表 list1 里面去(作用就是避免重复统计同一个字符)

比如:each 是字符“ S ”的话,就用count()方法统计一下它在 str1 中出现的次数,然后添加到 列表中去,下次就不会再统计字符 “ S ”了。


2. 找出符合条件的字母。这道题和上一题一样,需要在课后作业那里下载一个字符串。
你需要从这个字符串中找到符合条件的小写字母若干个,这个小写字母前后都有且只有三个大写字母。
也就是说当发现 “ t A X Q c P P T "这样的字符串时,字母 “ c ”就符合条件。在这个字符串中找到所有符合既定条件的小写字母就行了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-1 22:11:38 | 显示全部楼层
  1. import re
  2. t = 'tAXQcPPTbYJU'
  3. print(re.findall(r'[A-Z]{3}([a-z])[A-Z]{3}',t)) #第一次写的发现错误
  4. print(re.findall(r'(?<=[A-Z]{3})([a-z])(?=[A-Z]{3})',t)) #改为前视和后视
复制代码
  1. ['c']
  2. ['c', 'b']
复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-1 22:22:53 | 显示全部楼层
铁棍阿童木 发表于 2017-12-1 21:40
1. 从“拷贝过来的字符串”(也就是 str1 )中用 for 循环迭代出每一个字符
        如果 这个字符(each ...

哦哦,我明白了。count()是自动会把所有的字符串里找一遍符合条件的,然后计数。可是each只是一个字符,数过之后,它加进list里边了,和他一样的就不加了。然后list表里边是只有几个字符的。但是有全部字符的计数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-2 08:36:47 | 显示全部楼层
是的...论坛有这堂课的扩展阅读,列出了python所有字符串的method方法,以后碰到字符串处理就去看看就行了。很多都不需要自己动手。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-2 11:07:57 | 显示全部楼层
铁棍阿童木 发表于 2017-12-2 08:36
是的...论坛有这堂课的扩展阅读,列出了python所有字符串的method方法,以后碰到字符串处理就去看看就行了 ...

好的。谢谢你阿同!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 11:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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