鱼C论坛

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

[已解决]字符串处理,python20讲第二题编程题

[复制链接]
发表于 2020-4-19 10:39:08 | 显示全部楼层 |阅读模式

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

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

x
题目如下:
请用已学过的知识编写程序,找出小甲鱼藏在下边这个长字符串中的密码,密码的埋藏点符合以下规律:
    a) 每位密码为单个小写字母
    b) 每位密码的左右两边均有且只有三个大写字母
我的代码不知道哪里的判断没对,密码比标准答案的多筛选了几个字母,不知道哪里判断没对,代码如下:
import string
def shu(str):
    mima=[]
    for i in range(len(str)):
        if str[i].islower() and str[i-3:i].isupper() and str[i+1:i+4].isupper() and (str[i-4].isupper() is not True) and (str[i+4].isupper() is not True):
            mima.append(str[i])
        else:
            pass
        i+=1
    print(mima)
str=r''''''
shu(str)
最佳答案
2020-4-19 11:11:28
如果打印出来的是uilovefisdhc的话就是老问题,原因是TXT里面的换行符和回车符也被当成了大写字母,所以有几个不符合要求的字符也被算进去了,办法是用replace方法把字符串中的内容替换成空字符。
另外,不要用有特殊含义的str作为变量名,这在编程中是大忌,同理list、tuple等也是避免用作变量名的。
string = string.replace('\n','').replace('\r','')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-19 10:42:19 | 显示全部楼层
help
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-19 11:11:28 | 显示全部楼层    本楼为最佳答案   
如果打印出来的是uilovefisdhc的话就是老问题,原因是TXT里面的换行符和回车符也被当成了大写字母,所以有几个不符合要求的字符也被算进去了,办法是用replace方法把字符串中的内容替换成空字符。
另外,不要用有特殊含义的str作为变量名,这在编程中是大忌,同理list、tuple等也是避免用作变量名的。
string = string.replace('\n','').replace('\r','')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-19 11:12:50 | 显示全部楼层
懂了,字符判断 isupper()和islower()只判断字母,遇到回车符号的时候不会判断,所以当有回车的时候也会认为是字符。C:\Users\Admin\Desktop\字符.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-19 11:16:50 | 显示全部楼层
DC3339 发表于 2020-4-19 11:12
懂了,字符判断 isupper()和islower()只判断字母,遇到回车符号的时候不会判断,所以当有回车的时候也会 ...

另外你的代码应该没发全,如果按照发出来的代码运行应该什么都没有输出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-19 16:58:29 | 显示全部楼层
Hoiste 发表于 2020-4-19 11:16
另外你的代码应该没发全,如果按照发出来的代码运行应该什么都没有输出

那道题的字符太多了,我就没把字符复制进去,o(╥﹏╥)o
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-11 21:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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