写点什么

Python3.6.1 官方文档练习——初入江湖(二)

发布于: 2020 年 05 月 17 日
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 也是如此。



发布于: 2020 年 05 月 17 日阅读数: 923
用户头像

进一寸有进一寸的欢喜 2019.07.22 加入

我只不过是一位在海滩上贪玩的拾贝者。 更多非技术类文章在微信公众号:小匚,欢迎关注。

评论 (2 条评论)

发布
用户头像
建议添加封面图
2020 年 05 月 17 日 09:45
回复
好的,这就去修改,谢谢您的建议
2020 年 05 月 17 日 12:34
回复
没有更多了
Python3.6.1官方文档练习——初入江湖(二)