1、一行非常难以阅读哟,在 python 里面有一个自带的模块 textwrap ,它可以限制每多少个字符一行来对一个长句子进行换行。
import textwrap
s = '长句子'
formatted_s = textwrap.fill(s, 每行字符数)
通过一个参数 initial_indent
设置首行缩进:
formatted_s = textwrap.fill(s, 每行字符数, initial_indent=' ' * 4)
2、如果我们的注释写的足够规范,Python能够自动为我们生成非常好看的文档。注释和代码混着毕竟看起来不方便,所以我们可以使用 pydoc
来把注释生成文档。按照PEP8的规范来写注释,那么这些注释都能通过pydoc直接转换为文档。
hayestao@hayestao:~$ python3 -m pydoc 文件夹
3、如果不使用Decimal模块,那么直接做浮点运算获得的小数,可能是不准确的。例如 0.1 + 0.2
它的结果不是 0.3
而是 0.30000000000000004
。这不是Python的问题,而是浮点数在计算机中不能总是精确储存导致的问题。Python 里面可以直接进行分数运算,输入是分数,输出还是分数。需要使用 Python 的 fractions 模块。
>>> from fractions import Fraction
>>> a = Fraction(1,5)
>>> b = Fraction(2,5)
>>> c = a + b
>>> print(c)
3/5
>>>
4、多层嵌套的列表展平
def flat(deep_list):
for element in deep_list:
if isinstance(element, list):
yield from flat(element)
else:
yield element
a = [1, 2, [3, 4, [5, 6, 7], 8], 9, [10, 11]]
result = [x for x in flat(a)]
print(result) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
5、multiprocessing 多进程模块进行多线程爬虫
6、排列组合
使用 Python 自带的 itertools 模块中的 itertools.permutations 。
from itertools import permutations
example = 'abc'
result = permutations(example)
for answer in result:
print(''.join(answer))
# abc
# acb
# bac
# bca
# cab
# cba