|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 Python初学者8号 于 2021-2-9 17:00 编辑
刚那个帖子总是不对劲,我重发一个
我在写程序的时候我发现很奇怪的现象:索引问题。
话不多说直接上代码
- l = []
- for i in range(6):# i = 0 1 2 3 4 5
- l.append(i*10)
- print('l = ',l)
- print(l[i]+l[i+1])
复制代码
结果是:
这里面,发生了很奇怪的事情: 在i = 0的时候,先执行的是 l.append(i*10),他的结果是让空列表l产生第一个元素l[0] = 0
在执行第二句的时候,是打印出l[0]和l[1]。这个时候神器的事情出现了!!按道理这时候l只有一个元素l[0](也就是0),但是这里却没有报错出现了结果为0!!!
而且在执行最后的时候 i = 5,这时候不是l[5+1]不是也应该超出索引了吗???
我反手写了另一个代码:
- for i in range(6):# i = 0 1 2 3 4 5
- l.append(i*10)
- print('l = ',l)
- print(l[i],l[i+1])
复制代码
运行的结果居然是
- #运行的结果是
- l = [0]
- Traceback (most recent call last):
- File "<pyshell#50>", line 4, in <module>
- print(l[i],l[i+1])
- IndexError: list index out of range
复制代码
这真是牛逼他妈给牛逼开门,牛逼到家了,我是没搞懂咋回事,有没有大佬给看看!!
本帖最后由 hrp 于 2021-2-9 17:11 编辑
Python初学者8号 发表于 2021-2-9 17:02
@qiuyouzhi @wp231957 @昨非 @wp231957 @°蓝鲤歌蓝 @crisfo @hrp
没有人能比我更憨憨,我的第一个代码 ...
都一样,不管怎么改,循环中l[i+1]必然报错。
还是那句话,如果用shell测试的,那之前你应该是用过l列表并且没清空,才会阴差阳错没有报错。
|
|