python笔记:哈希类型,不可哈希类型,小数模块,分数模块,增强赋值

Python数据类型:哈希类型、不可哈希类型

哈希类型,即在原地不能改变的变量类型,不可变类型。
可利用hash函数查看其hash值,也可以作为字典的key:
“数字类型:int, float, decimal.Decimal, fractions.Fraction, complex”
“字符串类型:str, bytes”
“元组:tuple”
“冻结集合:frozenset”
“布尔类型:True, False”
“None”

不可hash类型:原地可变类型:list、dict和set。它们不可以作为字典的key。

各种转换

 # 八进制、十六进制、二进制数字
 0o177, 0x9ff, 0X9FF, 0b101010   
 # 复数常量,也可以用complex(real, image)来创建
3+4j, 3.0+4.0j, 3J 
# 将十进制数转化为十六进制、八进制、二进制表示的“字符串”
hex(I), oct(I), bin(I)     
#ascii和字符之间的转换
ord(),chr()

小数模块,分数模块

# Decimal模块:小数模块
    import decimal
    from decimal import Decimal
    Decimal("0.01") + Decimal("0.02")        # 返回Decimal("0.03")
    decimal.getcontext().prec = 4            # 设置全局精度为4 即小数点后边4位
# Fraction模块:分数模块
    from fractions import Fraction
    x = Fraction(4, 6)                       # 分数类型 4/6
    x = Fraction("0.25")                     # 分数类型 1/4 接收字符串类型的参数

增强赋值

#-- 动态类型简介
    """
    变量名通过引用,指向对象。
    Python中的“类型”属于对象,而不是变量,每个对象都包含有头部信息,比如"类型标示符" "引用计数器"等
    """
    #共享引用及在原处修改:对于可变对象,要注意尽量不要共享引用!
    #共享引用和相等测试:
        L = [1], M = [1], L is M            # 返回False
        L = M = [1, 2, 3], L is M           # 返回True,共享引用
    #增强赋值和共享引用:普通+号会生成新的对象,而增强赋值+=会在原处修改
        L = M = [1, 2]
        L = L + [3, 4]                      # L = [1, 2, 3, 4], M = [1, 2]
        L += [3, 4]                         # L = [1, 2, 3, 4], M = [1, 2, 3, 4] 增强赋值这么可怕

几种:

    S = r'\temp'                 # Raw字符串,不会进行转义,抑制转义
    S = b'Spam'                  # Python3中的字节字符串
    S = u'spam'                  # Python2.6中的Unicode字符串

你可能感兴趣的:(python)