鱼C论坛

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

问一个很幼稚的问题

[复制链接]
发表于 2019-5-14 18:44:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
最近学习Python遇到一个很幼稚的问题想不明白,在Python中[1:3]这个表达可以理解为取第二个和第三个位置的元素,但我一直理解不了为什么不去第四个位置的元素,因为有人说电脑程序都是从0开始的,所以’1‘是取的是第二个位置的元素,但如果那个样子的话‘3’应该去第四个位置的元素,为什么不包含第四个位置的元素,不知道我表达的是否清晰,只是一直没想明白,请各位大神解答一下这个小白提问,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-5-14 18:46:25 | 显示全部楼层
因为列表是 半开半闭 的,这是源码里规定的,你不喜欢的话,那就去改了吧。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-14 21:00:05 | 显示全部楼层
      [1 : 3] 包括 1 不包括 3,于是,就是 1 , 2 两个元素了。至于说到索引,几乎所有的语言都是从 0 开头的,我们平时喜欢从 1 开始索引,把这个索引整体向前平移,减掉 1 就可以了,用多了就习惯了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-14 21:23:36 | 显示全部楼层
本帖最后由 13572044595 于 2019-5-14 21:27 编辑

计算机刚发明的时候,是用二进制,也就是 ‘0’ 和 ‘1’ 来储存信息的,所以计算机是从 ‘0’ 开始计数的,而现实中人们是以 ‘1’ 来开始计数的,

比如:
>>> a = ['H','i','n','a','t','a']
>>> for k in range(len(a)):        # 这里 len(a) == 6
        print(k)

       
0
1
2
3
4
5
>>> for k in range(len(a)):      # 这里 len(a) == 6
        print(a[k])

       
H
i
n
a
t
a
>>>

range() 和 list[] 取值是一样的,
如上所述,如果 range() 能取到 6 的话,
那么 a[6] 也就是 取 列表a 的第 7 个值,
根本就取不到,


小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-15 18:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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