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)
     in 
          3     for i in range(10, -1, -1):
          4         print(10/i)
    ----> 5 divided_zero()
    
     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)
     in 
    ----> 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实战打卡---day14_第1张图片

python第七部分结束!!!!!!!

你可能感兴趣的:(学习笔记,python,开发语言)