office 发表于 2020-2-13 13:00:47

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

本帖最后由 office 于 2020-2-13 16:32 编辑

def passwd(x):
    xi = 'abcdefghigklmnopqrstuvwxyz'
    da = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

    str1 = []
    length = len(x)


    for i in range(length):
      if x == '\n':
            continue      
      elif(x in da) and (x in da) and (x in da) and (x in da) and (x in da) and (x in da) and (x in xi):
            str1.append(x)

    return ''.join(str1)

x = input()
print(passwd(x))





这是动动手第一题我写的答案,在群里有位“Python有关问题问@我”回答了一下我的问题,但是问题没有回答全面,
这是他给的答案:
但是他没有回答,有限几个字母为什么不报错,在字母较多时才报错,
求解答~~~

苏瓦奥术 发表于 2020-2-13 14:53:35

建议在for i in range(length)下加
if i < 3:
    continue
另外,input函数只能读取第一行内容,即
你输入
abcusacnbus
bxcvnidrnir
它只读取abcusacnbus

rootroot 发表于 2020-2-13 15:13:48

1

office 发表于 2020-2-13 16:32:00

找到问题了,因为我是的段字符串最后三位是大写所以没报错,与字符串长短没关系,与字符串的后三个字母大小有问题
字符再多,后三位是大写同样可以出来
字符再少,后三位任意一个是小写也出不来

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

最后感谢群友们的答案,在这里表示感谢
页: [1]
查看完整版本: 小甲鱼Python第20将课后题动动手第一题