仓酷云

标题: Linux制作之Python之父:为何Python数组下标从0入手下手仓酷云 [打印本页]

作者: 山那边是海    时间: 2015-1-18 11:21
标题: Linux制作之Python之父:为何Python数组下标从0入手下手仓酷云
Linux的常用命令find,察看man文档,初学者一定会觉得太复杂而不原意用,但是你一旦学会就爱不释手。
已经有人在Twitter上问我为何Python利用以0为首位的数组索引法(0-based),而且还给我了一个相干优异文章的链接。这让我想起很多旧事:Python的前身之一,ABC言语利用的是以1为首位的数组索引体例(1-based),而对Python有着伟大影响的C言语则利用的是0-based。我初期开辟的程序言语(Algol、Fortran、Pascal)有的利用1-based,有的则对照天真。我以为切片语法是我做出这个决意的缘故原由之一。
我们先来看看切片语法的利用吧。它最多见的利用应当是“切出数组的前n位”和“切出数组第i位后的n位”(前者是后者在i==肇端位下的惯例)。假如我们不必要利用丢脸的+1或-1抵偿体例,那末代码就会美妙很多。
经由过程利用0-based索引法,Python的半开区间和缺省婚配区间都很美妙,如:a[:n]和a[i:i+n];前者是a[0:n]的省略写法。
在1-based索引法下,假如你想用a[:n]来暗示切出前n个元素的话,你只能选择在切片语法中利用切片肇端位和切片长度2个参数,大概闭区间的用法。利用1-based索引法,半开区间切片语法就显得不敷美妙。一样地,利用闭区间切片语法的话,你只能用a[i:i+n-1]来暗示从第i位取n个元素。以是假如利用1-based索引法的话,利用切片长度更符合。你能够写成a[i:n]。现实上,ABC言语就是如许的——它用了一种特别的用法,写为a@i|n。(参考http://homepages.cwi.nl/~steven/abc/qr.html#EXPRESSIONS)
可是index:length的用法合适别的情形吗?厚道说,我不太记得了,但我想我事先切实其实很喜好它美妙的半开区间语法。出格是两个切片操纵地位相邻而且第一个切片操纵的尽头索引就是第二个切片的出发点索引的时分,它的写法其实是太大度了。好比,你想以i,j两点来切分一个数组的话,它们将会是a[:i]、a[i:j]、和a[j:]。
这就是Python利用0-based索引法的缘故原由。

Linux的常用命令find,察看man文档,初学者一定会觉得太复杂而不原意用,但是你一旦学会就爱不释手。
作者: 不帅    时间: 2015-1-19 14:01
这种补充有助于他人在邮件列表/新闻组/论坛中搜索对你有过帮助的完整解决方案,这可能对他们也很有用。
作者: 愤怒的大鸟    时间: 2015-1-24 12:46
在学习linux的工程中,linux学习方法有很多种,这里是小编的学习心得,给大家拿出来分享一下。
作者: admin    时间: 2015-2-1 12:33
首先Linux是开源的,这也是最主要的原因,想学windows,Unix,对不起我们没源代码。也正是因为这样,Linux才能够像滚雪球一样越滚越大,发展到现在这种规模。
作者: 再见西城    时间: 2015-2-7 05:24
感谢老师和同学们在学习上对我的帮助。
作者: 因胸联盟    时间: 2015-2-9 01:53
为了更好的学习这门课程,我不仅课上认真听讲,课下也努力学习,为此还在自己的电脑上安装了Ubuntu系统。
作者: 小女巫    时间: 2015-2-26 17:53
眼看这个学期的Linux课程已经告一段落了,我觉得有必要写一遍心得体会来总结一下这学期对着门课程的学习。
作者: 莫相离    时间: 2015-2-28 17:57
说实话小时候没想过搞IT,也计算机了解也只是一些皮毛,至于什么UNIX,Linux,听过没见过,就更别说用过了。?
作者: 简单生活    时间: 2015-3-17 04:09
了解Linux的网络安全,系统的安全,用户的安全等。安全对于每位用户,管理员来说是非常重要的。
作者: 蒙在股里    时间: 2015-3-23 18:18
虽然大家都比较喜欢漂亮的mm,但是在学 linux 的过程中,还是要多和“男人”接触一下:P 遇到问题的时候,出来看说和上网查之外,就是要多用 linux 下的 man 命令找找帮助。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2