小诺爷 发表于 2020-7-13 09:19:18

20讲动动手1

list1 = '''ACFlCTLIQlAIVMTqHFkswqbDDHtpgcWaXSSglUYKE
lc'''
list1_len = len(list1)
w = []
e = []
for i in range(list1_len):
    if not ((list1).isupper()):
      a = list1
      w.append(a)
      for e in w:
            del w
            if w.isupper():
                e.append((list))
            else:
                clear(w)
    else:
      continue

为什么 我这个代码执行总是显示列表分配索引超出范围呢   应该怎样修改?

小诺爷 发表于 2020-7-13 09:20:29

这个思路做20讲的动动手1不知道可不可行

Twilight6 发表于 2020-7-13 09:32:44

小诺爷 发表于 2020-7-13 09:20
这个思路做20讲的动动手1不知道可不可行



肯定不可行的,你写的代码抛开报错,不符合题意

简单理解题目的意思是 小写字母的 前后都有且只有 3 个 大写字母 ,而你的代码并没有实现

超出索引的地方就是 w ,这表示的是 w 列表的第三个元素,而你开始的时候也就是个空列表,for 循环也只 append 了一个字符串到 w 列表中

所以这里索引超出范围了,导致报错,建议重新读懂题意然后尝试着重新写串代码哈


sunrise085 发表于 2020-7-13 09:39:51

超范围是w导致的。
最开始的时候列表w是空的,第一次进入for循环的if语句,会向w中添加一个元素,然后进入内层for循环,此时w中只有一个元素,你却写了del w当然会报索引超出范围啦。
页: [1]
查看完整版本: 20讲动动手1