python实战打卡---day14

python第三方包

  1. 代码优化异常输出包

    一行代码优化输出的异常信息

    pip install pretty-errors

    # 写一个测试函数
    def divided_zero():
        for i in range(10, -1, -1):
            print(10/i)
    divided_zero()
    '''
    1.0
    1.1111111111111112
    1.25
    1.4285714285714286
    1.6666666666666667
    2.0
    2.5
    3.3333333333333335
    5.0
    10.0
    ---------------------------------------------------------------------------
    ZeroDivisionError                         Traceback (most recent call last)
    <ipython-input-1-8917413a0c69> in <module>
          3     for i in range(10, -1, -1):
          4         print(10/i)
    ----> 5 divided_zero()
    
    <ipython-input-1-8917413a0c69> in divided_zero()
          2 def divided_zero():
          3     for i in range(10, -1, -1):
    ----> 4         print(10/i)
          5 divided_zero()
    
    ZeroDivisionError: division by zero # 出错信息很简洁
    '''
    
  2. 图像处理包pillow

    两⾏代码实现旋转和缩放图像

    ⾸先安装pillow:

    pip install pillow

    旋转图像45度:

    from PIL import Image
    im = Image.open('图片地址')
    im.rotate(45).show()
    

    等比例缩放图像:

    im.thumbnail((128,72),Image.ANTIALIAS)
    

    过滤图像后的效果图:

    from PIL import ImageFilter
    im.filter(ImageFilter.CONTOUR).show()
    
  3. 一行代码找到编码

    兴⾼采烈地,从⽹页上抓取⼀段 content 但是,⼀ print 就不那么兴⾼采烈了,结果看到⼀串这个:

    b’\xc8\xcb\xc9\xfa\xbf\xe0\xb6\xcc\xa3\xac\xce\xd2\xd3\xc3Python’

    这是啥? 又 x 又 c 的! 再⼀看,哦,原来是⼗六进制字节串 ( bytes), \x 表⽰⼗六进制 接下来,你⼀定想转化为⼈类能看懂的语⾔,想到 decode:

    b'\xc8\xcb\xc9\xfa\xbf\xe0\xb6\xcc\xa3\xac\xce\xd2\xd3\xc3Python'.decode()
    '''
    ---------------------------------------------------------------------------
    UnicodeDecodeError                        Traceback (most recent call last)
    <ipython-input-2-7d0ea6148880> in <module>
    ----> 1 b'\xc8\xcb\xc9\xfa\xbf\xe0\xb6\xcc\xa3\xac\xce\xd2\xd3\xc3Python'.decode()
    
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc8 in position 0: invalid continuation byte
    '''
    

    马上,⼀盆冷⽔泼头上,抛异常了。。。。。

    根据提⽰, UnicodeDecodeError,这是 unicode 解码错误。

    原来, decode 默认的编码⽅法: utf-8

    所以排除 b’\xc8\xcb\xc9\xfa\xbf\xe0\xb6\xcc\xa3\xac\xce\xd2\xd3\xc3Python’ 使⽤ utf-8 的编码 ⽅式

    可是,这不是四选⼀选择题啊,逐个排除不正确的!

    编码⽅式⼏⼗种,不可能逐个排除吧。

    那就猜吧!!!!!!!!!!!!!

    ⼈⽣苦短,我⽤Python

    Python, 怎忍⼼让你受累呢~

    尽量三⾏代码解决问题

    第⼀步,安装 chardet 它是 char detect 的缩写。

    第⼆步,pip install chardet

    第三步,出结果

    import chardet
    chardet.detect(b'\xc8\xcb\xc9\xfa\xbf\xe0\xb6\xcc\xa3\xac\xce\xd2\xd3\xc3Python')
    '''
    {'encoding': 'GB2312', 'confidence': 0.99, 'language': 'Chinese'}
    '''
    

    编码⽅法:gb2312

    解密字节串:

    b'\xc8\xcb\xc9\xfa\xbf\xe0\xb6\xcc\xa3\xac\xce\xd2\xd3\xc3Python'.decode('gb2312')
    '''
    '人生苦短,我用Python'
    '''
    

    ⽬前, chardet 包⽀持的检测编码⼏⼗种,如下所⽰:
    在这里插入图片描述

python第七部分结束!!!!!!!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

leon.shadow

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值