鱼C论坛

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

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

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

  4.     str1 = []
  5.     length = len(x)


  6.     for i in range(length):
  7.         if x[i] == '\n':
  8.             continue        
  9.         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):
  10.             str1.append(x[i])

  11.     return ''.join(str1)

  12. x = input()
  13. 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
最佳答案
0 
发表于 2020-2-13 14:53:35 | 显示全部楼层
建议在for i in range(length)下加
if i < 3:
    continue
另外,input函数只能读取第一行内容,即
你输入
abcusacnbus
bxcvnidrnir
它只读取abcusacnbus
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
发表于 2020-2-13 15:13:48 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
 楼主| 发表于 2020-2-13 16:32:00 | 显示全部楼层
找到问题了,因为我是的段字符串最后三位是大写所以没报错,与字符串长短没关系,与字符串的后三个字母大小有问题
字符再多,后三位是大写同样可以出来
字符再少,后三位任意一个是小写也出不来

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

最后感谢群友们的答案,在这里表示感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2020-9-21 16:27

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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