首页 > 代码库 > 再次回味Python2——笔记
再次回味Python2——笔记
一、基本知识
1、一个值可以同时赋给几个变量:
>>> x = y = z = 0 # Zero x, y and z >>> x 0 >>> y 0 >>> z 0
2、创建复数
>>> a=1+6j >>> x=complex(1,3) # x=1+3j
>>>x.real
1
>>>x.imag
3
3、字符串
>>> ‘spam eggs‘ ‘spam eggs‘ >>> ‘doesn\‘t‘ "doesn‘t" >>> "doesn‘t" "doesn‘t" >>> ‘"Yes," he said.‘ ‘"Yes," he said.‘ >>> "\"Yes,\" he said." ‘"Yes," he said.‘ >>> ‘"Isn\‘t," she said.‘ ‘"Isn\‘t," she said.‘
字符串可以标识在一对三引号中: """
或 ‘‘‘
。三引号中,不需要行属转义,它们已经包含在字符串中。
hello = r"This is a." print(hello)
字符串也可以被截取(检索)
Unicode
>>> u‘Hello World !‘ u‘Hello World !‘
>>> str(u"abc") ‘abc‘
4、列表
>>> a = [‘spam‘, ‘eggs‘, 100, 1234] >>> a [‘spam‘, ‘eggs‘, 100, 1234]
就像字符串索引,列表从 0 开始检索。列表可以被切片和连接
允许嵌套列表(创建一个包含其它列表的列表)
>>> q = [2, 3] >>> p = [1, q, 4] >>> len(p) 3 >>> p[1] [2, 3] >>> p[1][0] 2
5、for语句
Python 的 for
语句依据任意序列(链表或字符串)中的子项,按它们在序列中的顺序来进行迭代。
>>> # Measure some strings: ... a = [‘cat‘, ‘window‘, ‘defenestrate‘] >>> for x in a: ... print x, len(x) ... cat 3 window 6 defenestrate 12
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(5, 10) [5, 6, 7, 8, 9] >>> range(0, 10, 3) [0, 3, 6, 9] >>> range(-10, -100, -30) [-10, -40, -70]
6、定义函数
全局变量不能在函数中直接赋值(除非用 global
语句命名)
>>> def fib(n): ... """Print a Fibonacci series up to n.""" ... a, b = 0, 1 ... while a < n: ... print a, ... a, b = b, a+b
函数体的第一行语句可以是可选的字符串文本,这个字符串是函数的文档字符串,或者称为 docstring 。
6.1、Lambda 形式
Lambda 形式可以用于任何需要的函数对象。
类似于嵌套函数定义,lambda 形式可以从外部作用域引用变量
>>> def make_incrementor(n): ... return lambda x: x + n ... >>> f = make_incrementor(42) >>> f(0) 42 >>> f(1) 43
6.2、文档字符串
第一行应该是关于对象用途的简介
如果文档字符串有多行,第二行应该空出来,与接下来的详细描述明确分隔。
Python 的解释器不会从多行的文档字符串中去除缩进,所以必要的时候应当自己清除缩进。
文档第一行通常空出,如果写了,__doc__格式不是很好
def test(): """ aaaaaaaaaaaaaaaaaaaa this is a test document! bbbbbbbbbbbbbbbbbbbb """ pass print test.__doc__
输出如下:
aaaaaaaaaaaaaaaaaaaa this is a test document! bbbbbbbbbbbbbbbbbbbb
7、 插曲:编码风格建议
-
使用 4 空格缩进,而非 TAB。
在小缩进(可以嵌套更深)和大缩进(更易读)之间,4空格是一个很好的折中。TAB 引发了一些混乱,最好弃用。
-
折行以确保其不会超过 79 个字符。
这有助于小显示器用户阅读,也可以让大显示器能并排显示几个代码文件。
-
使用空行分隔函数和类,以及函数中的大块代码。
-
可能的话,注释独占一行
-
使用文档字符串
-
把空格放到操作符两边,以及逗号后面,但是括号里侧不加空格:
a = f(1, 2) + g(3, 4)
。 -
统一函数和类命名。
推荐类名用
驼峰命名
, 函数和方法名用小写_和_下划线
。总是用self
作为方法的第一个参数(关于类和方法的知识详见 初识类 )。 -
不要使用花哨的编码,如果你的代码的目的是要在国际化 环境。 Python 的默认情况下,UTF-8,甚至普通的 ASCII 总是工作的最好。
-
同样,也不要使用非 ASCII 字符的标识符,除非是不同语种的会阅读或者维护代码。
二、数据结构
1. 关于列表更多的内容
Python 的列表数据类型包含更多的方法。 这里是所有的列表对象方法:
list.
append
(x) 把一个元素添加到链表的结尾list.
extend
(L) 将一个给定列表中的所有元素都添加到另一个列表中list.
insert
(i, x) 在指定位置插入一个元素。第一个参数是准备插入到其前面的那个元素的索引list.
remove
(x) 删除链表中值为 x 的第一个元素。如果没有这样的元素,就会返回一个错误。list.
pop
([i]) 从链表的指定位置删除元素,并将其返回。如果没有指定索引,a.pop()
返回最后一个元素。元素随即从链表中被删除。(方法中 i 两边的方括号表示这个参数是可选的,而不是要求你输入一对方括号,你会经常在 Python 库参考手册中遇到这样的标记。)list.
index
(x) 返回链表中第一个值为 x 的元素的索引。如果没有匹配的元素就会返回一个错误。list.
count
(x) 返回 x 在链表中出现的次数。list.
sort
() 对链表中的元素就地进行排序list.
reverse
() 就地倒排链表中的元素
再次回味Python2——笔记