读书笔记-Effective python
jinguasu
不断学习,不断总结。
展开
-
Issue-3 字符串和编码,了解bytes str unicode的区别
在此之前,我们先简单了解一下编码。 因为计算机只能处理数字,如果要处理文本等,那么必须要把文本转化为二进制的数字才可以处理,最开始只有127个字符被编码计算机里,包括大小写字母,符号,数字,就是美国人用的这些就够了,这套编码表叫做ASCII编码,就是用一个字节编码一个字符,一个字节8位,但是后来呢,由于要加入各种语言,比如中文,日文,韩文等,就不够用了,中文需要用2个字节,所以中国就制订了GB2原创 2017-07-11 09:28:11 · 384 阅读 · 0 评论 -
issue-15 了解闭包里如何使用外围作用域里的变量
先来看一个例子,有一个列表,我们想要对它排序,但是呢,如果这个列表里的元素在另一个列表里,那么,这个元素有优先排序权,我们来写一个程序: # -*- coding: utf-8 -*- numbers = [3,6,1,2,4,9,7,8] group = [4,2,7] def sort_priority(values,group): def helper(x):原创 2017-07-20 10:27:26 · 259 阅读 · 0 评论 -
Issue-16 考虑用生成器来改写直接返回列表的函数
我们先考虑这样一个函数,对于一个字符串,我们想找出每一个单词的首字母在这个字符串中的位置,程序如下: # -*- coding: utf-8 -*- address = 'four score and seven years ago' def index_words(text): result = [] if text: #判断是否为空,不为空那么第一个元素肯定是0原创 2017-07-20 14:39:45 · 224 阅读 · 0 评论 -
issue-17 在参数上迭代时,要多加小心
issue-16 里面我们说了,调用一个生成器时,它不会立即执行,而是会返回一个迭代器,而这个迭代器呢,只能调用一次,在调用就为空了。这里我们详细介绍一下这个问题可能存在的场景,以及我们的解决办法。 假设这样一个例子,统计每年俩杭州旅游的各个城市的人数,求和,以及每个城市来的人百分比。在这里呢,我们用生成器来做,把每个城市的人数写在一个文件里,这样如果文件特别大的话容易占内存,所以可以用原创 2017-07-26 10:34:08 · 247 阅读 · 0 评论