编码风格
使用4空格缩进,而非TAB。在小缩进(可以嵌套更深)和大缩进(更易读)之间,4空格是一个很好的折中。TAB引发了一些混乱,最好弃用。
折行以确保其不会超过79个字符。这有助于小显示器用户阅读,也可以让大显示器能并排显示几个代码文件。
使用空行分隔函数和类,以及函数中的大块代码。 可能的话,注释独占一行。 使用文档字符串。
把空格放到操作符两边,以及逗号后面,但是括号里侧不加空格:
a = f(1,2) + g(3,4)
统一函数和类命名。总是用self作为方法的第一个参数。
字符串
利用三引号(’’’)或(”””)可以指示一个多行的字符串,在里面可以随便使用单引号和双引号。它也是文档字符串DocStrings
>>> def doc():
'''Hi Hi''' pass
>>> print doc.__doc__ Hi
>>>
文档字符串第一行应该是关于对象用途的简介。如果文档字符串有多行,第二行应该空出来,与接下来的详细描述明确分离。
转义符:'what\\'s up' 等价于\
\\\\表示反斜杠本身
行末单独的一个\\表示在下一行继续,而不是新的一行: 'aaaaa\\
Hi
dddd' 等价于'aaaaadddd'
原始字符串r
如果我们生成一个“原始”字符串,\\n 序列不会被转义,而且行尾的反斜杠,源码中的换行符,都成为字符串中的一部分数据。
>>> hello = r\serveral lines of text much as you would do in C.\>>> print hello
This is a rather long string containing\\n\\ serveral lines of text much as you would do in C. >>> hello = \serveral lines of text much as you would do in C.\>>> print hello
This is a rather long string containing
serveral lines of text much as you would do in C
原始字符串的最后一个字符不能是“\\”,如果想要让字符串以单“\\”结尾,可以这样:
>>> print r'ee''\\\\' ee\\
如果是print r'ee\\'则会返回错误;如果是print r'ee\\\\'则会返回ee\\\\
字符串可以由 + 操作符连接,可以由 * 操作符重复。
相邻的两个字符串文本自动连接在一起,它只用于两个字符串文本,不能用于字符串表达式。
>>> 'str '.strip() 'str' >>> 'str' 'jkl' 'strjkl'
>>> 'str '.strip() 'jkl' SyntaxError: invalid syntax >>> 'str '.strip() + 'jjj' 'strjjj'
字符串不可变,向字符串文本的某一个索引赋值会引发错误。不过,组合文
本内容生成一个新文本简单而高效。
>>> word = 'thank' >>> word[0] 't'
>>> word[0] = 'f'
Traceback (most recent call last):
File \ word[0] = 'f'
TypeError: 'str' object does not support item assignment >>> word[ :4] + 'g' 'thang'
切片操作有个有用的不变性:i[:s] + i[s:] 等于i。
>>> word[:4] + word[4:] 'thank'
值被转换为字符串的两种机制:str、repr
str函数:把值转换为合理形式的字符串
repr:创建一个字符串,以合法的Python表达式的形式来表示值
>>> print repr('hello,world!') 'hello,world!'
>>> print str('hello,world!') hello,world!
>>> print repr('1000L') '1000L'
>>> print str('1000L') 1000L
input与raw_input:
>>> raw_input('e:') e:a 'a'