鱼C论坛

 找回密码
 立即注册
查看: 3388|回复: 3

小甲鱼Python第20将课后题动动手第一题

[复制链接]
发表于 2020-2-13 13:00:47 | 显示全部楼层 |阅读模式
1鱼币
本帖最后由 office 于 2020-2-13 16:32 编辑
def passwd(x):
    xi = 'abcdefghigklmnopqrstuvwxyz'
    da = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

    str1 = []
    length = len(x)


    for i in range(length):
        if x[i] == '\n':
            continue        
        elif(x[i-3] in da) and (x[i-2] in da) and (x[i-1] in da) and (x[i+1] in da) and (x[i+2] in da) and (x[i+3] in da) and (x[i] in xi):
            str1.append(x[i])

    return ''.join(str1)

x = input()
print(passwd(x))
这是动动手第一题我写的答案,在群里有位
“Python有关问题问@我”
G(CR4233B4EXBK[G)GSPBLE.png
回答了一下我的问题,但是问题没有回答全面,

这是他给的答案:
1N~A3T6}8_[C`I}L]@%VD~Q.png

但是他没有回答,有限几个字母为什么不报错,在字母较多时才报错,
ZZP(GJQA1Q2OG$T3SWS3OUV.png
1H3(9V7DES{F$WDOQPO`KN9.png

求解答~~~

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

使用道具 举报

发表于 2020-2-13 14:53:35 | 显示全部楼层
建议在for i in range(length)下加
if i < 3:
    continue
另外,input函数只能读取第一行内容,即
你输入
abcusacnbus
bxcvnidrnir
它只读取abcusacnbus
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-13 15:13:48 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-2-13 16:32:00 | 显示全部楼层
找到问题了,因为我是的段字符串最后三位是大写所以没报错,与字符串长短没关系,与字符串的后三个字母大小有问题
字符再多,后三位是大写同样可以出来
字符再少,后三位任意一个是小写也出不来

还有,在字符串检查[i-3]时,如果i = 0 时,得出的结果还是字符串的第一位,如果i = 最后一位,[i+3]时,则会报错

最后感谢群友们的答案,在这里表示感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 05:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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