zoukankan      html  css  js  c++  java
  • 【Effective Python】书本知识点总结

    书本介绍

    使用Pythonic方式思考问题【Pythonic是一种编程风格】致力于编写高质量Python代码的59个有效方法。

    遵守PEP8

    PEP8是针对Python代码格式而编订的风格指南。使代码变得更加易懂、易读。方便多人协作。无论是修改、阅读都容易一些。

    这边就不自己总结了。毕竟网上资料比较全。
    https://www.jianshu.com/p/ffcc66bab3ce

    了解bytes、str与unicode

    Python3有两种表示字符序列的类型:BytesStr。
    
    Bytes实例包含原始的8位数值;【原始的字节,一个字节8个二进制位】
    
    Str实例包含Unicode字符;
    程序的核心部分应该使用Unicode字符类型(也就是Python3的str和Python2的unicode)。

    例子

    接受Str和Bytes,并且总是返回Str或者Bytes的方法
    # 字符串在Python内部的表示是unicode编码
    def Turn(bytes_or_str):
        
        if isinstance(bytes_or_str, bytes):
            # decode的作用是将其他编码的字符串转换成unicode编码
            # encode的作用是将unicode编码转换成其他编码的字符串
            value = bytes_or_str.decode('utf-8')
        else:
            value = bytes_or_str
        return value
    
    a = Turn(b'123')
    # a = 123

    # 系统默认编码
    # print(sys.getdefaultencoding())

    ‘utf-8’

    # 注: 不要把系统以为是操作系统,这里可以理解成python3的编译器本身

    Python3 给open函数添加了encoding的新参数,默认值为‘utf-8’

    总结

    1、在python3中,bytes是一种包含8位数值的序列,str是一种包含Unicode字符的序列。一定不能把bytes和Str弄混,将两个实例进行‘+’等操作
    
    2、在Python2中,str是一种包含8位数值的序列
    
    3、在进行数据操作之前,或者数据保存之前一定要保证字符序列和开发者期望相符。很容易混肴

    4、从文件中读取二进制数据,或者向其中写入二进制数据的时候,总应该以'wb' 'rb'等二进制模式来开启文件。

     

  • 相关阅读:
    BZOJ1222: [HNOI2001]产品加工(诡异背包dp)
    洛谷P1208 [USACO1.3]混合牛奶 Mixing Milk(贪心)
    SDOI 2018划水记
    【Leetcode】Search in Rotated Sorted Array II
    HDU 4089 Activation
    linux scp ssh命令不用输入密码
    封装fastjson为spring mvc的json view
    codility上的练习(3)
    git 拉取远程分之到本地
    Oracle 索引扫描的4种类型
  • 原文地址:https://www.cnblogs.com/jackson669/p/13060918.html
Copyright © 2011-2022 走看看