技术点一二

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

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值