Python3.6.1 官方文档练习——初入江湖(二)
来的快的,
去的也快。
于是沙漏滴完,
还剩下些什么呢?
——当年的提问,现在回答:
剩下了当年的痕迹,当年的文字,臭不要脸的说还有随着时间增长的智慧。
上一期练习到了 Python 的注释,计算器,字符串,while 循环和 Fibonacci series 的函数体。如想回顾,请戳:Python3.6.1官方文档练习——初入江湖 发现 ( InfoQ 对微信公众号链接还是很友好的)
这一期,继续官方文档的练习之路。
细心的你,有没有发现上期 Python 推送中的编译环境有两种?
一种是黑色背景的,一种是白色。
前者是直接打开的 Python 的解释器(Interpreter),可以随时运行结果,但是缩进需要手打,以至于刚开始没发现这个问题时运行一直出错;
后者则是IDE编译环境Spyder,可以自动缩进,也可以使用 Ctrl +V 。
1
关于数据,补充:
浮点数是有精度损失的。3.3 用二进制是不能准确表示的。
如,计算1.1+1.1时,程序结果正确:
而又多了一个1.1时,则出现错误:
2
函数的关键字参数调用。
当最后一个形参以 “ **name ”形式出现时,它接收一个字典,该字典包含了所有未出现在形式参数列表中的关键字参数。*name接收一个包含所有没有出现在形式参数列表中的位置参数元组。(*name必须出现在**name之前。)
在函数调用中,关键字的参数必须跟随在位置参数的后面。传递的所有关键字参数必须与函数接受的某个参数相匹配(例如actor不是parrot函数的有效参数),它们的顺序并不重要。
举个例子(下面那张图)来说,kind 就是位置参数,keywords这一单词通常代表关键字参数,在函数调用中的形式是:[ ]=[ value ]。
*arguments代表一种形式的关键字,**keywords代表另一种形式的关键字,它们俩就是前面提到的形参。
如果你看了图片也许会好奇 runny 的意思,单独一个单词是“流鼻涕、流(非固体)”,而在 “It is very runny. ”中则是“流行的”,整句话翻译过来就是“这太流行了。”
3
下图的例子就是用作函数的返回值。
sort 函数是列表的自带排序功能。key是建立排序的参数。默认参数:
list.sort( key = None, reverse = False)
key 就像是你选中了 Excel 中的很多列,然后制定要按照其中某一列来排序。被选中作为排序索引的那一列就是 key。
reverse 默认是升序,如果要改为降序,就把参数改为:True。
像官方文档里给的用法是 sort + lambda,就可以很方便的制定按列表元素里的第几项元素进行排序。
c 语言的列表的排序实现是需要遍历去写代码的,冒泡排序啊、快速排序啊等排序算法,为我们贡献了不少算法题目。Python 在这里就显得非常的简单方便。
4 列表操作
以下面这个列表为例:
1)list.append(x)
添加一个元素到列表的末尾;相当于a[len(a):] = [x]。
2)
list.extend(L)
将指定列表中的所有元素附加到另一个列表的末尾;相当于a[len(a):] = L。
3)
list.insert(i, x)
在给定位置插入一个元素。
第一个参数是插入的元素的索引,a.insert(0, x) 在列表的最前面插入。
4)
list.remove(x)
删除列表中第一个值为 x 的元素。如果没有这样的元素将会报错。
5)
list.pop(i)
删除列表中指定位置的元素并返回它。如果未指定索引,a.pop()将删除并返回列表中的最后一个元素。
6)
list.index(x)
返回列表中第一个值为 x 的元素的索引。如果没有这样的元素将会报错。
7)
list.reverse()
原地反转列表中的元素。
5
使用append()将元素添加到栈顶;
使用不带索引的pop()从栈顶取出元素。
例如:
6 队列的操作:
总结:
如果要直接啃官方文档来学习编程语言,我建议要有数据结构的先导基础以及其他编程语言,尤其是 C 。这样看官方文档才不会被绕进去,对于每个部分所属的知识结构心里也能有个大致的框架。
比如,今天这篇主要偏重 列表,后面还有字典,那么这就属于 python 的经典的数据结构。
而在每种数据结构下面,又涉及到“增删改查”4个基本功能的实现。
增一般用:append、expend,
删:pop、del,
改:直接覆盖、赋值修改,
查:往往是需要遍历一遍才能找到想要的元素。
具体情况再具体分析。包括到后面的 pandas 里的 DataFrame 也是如此。
版权声明: 本文为 InfoQ 作者【Sicolas Flamel】的原创文章。
原文链接:【http://xie.infoq.cn/article/f9fa345db5386bb4033130a8f】。文章转载请联系作者。
评论 (2 条评论)