不同进制数字面量
a = 0b111 # 二进制
b = 0o234 # 八进制
c = 0xabc # 十六进制
进制转化函数
# 把一个整数转换成三种进制表示的字符串
hex(I)
oct(I)
bin(I)
# 根据给定的进制把一个字符串转化为整数
int(str, base)
常用内置数学工具
import math
# 向下取整
math.floor(2.567) == 2
math.floor(-2.567) == -3
# 向零取整
math.trunc(2.567) == 2
math.trunc(-2.567) == -2
# 舍弃小数部分
int(2.567) == 2
int(-2.567) == -2
# 四舍五入
round(2.567) == 3
round(2.456) == 2
round(2.456, 2) = 2.46 #保留两位小数
random模块
import random
# 从一个序列中随机选取一项
random.choice([1, 2, 3, 4])
# 打乱列表顺序
random.shuffle(L)
不可变对象的无序集合
创建集合
# 将一个序列或者可迭代对象传入set函数
x = set("abcd")
y = set([1, 2, 3, 3])
k = {1, 2, 3}
m = {} # 这不是一个空集合,而是与一个空字典
z = set() # 创建空集合
集合运算
# | & ^ < 只能表示集合运算时,两个操作数必须都是集合
x = {1, 2, 3, 4}
y = {1, 2}
z = {3, 4, 5}
x - y == {3, 4}
x - z == {1, 2}
x | z == {1, 2, 3, 4, 5} #或
x & y == {1, 2} #与
x ^ z == {1, 2, 5} # 异或
y < x == True # 子集
# 对原集合修改
x.add(90) # 为集合x增加一个元素
x.remove(90) # 把集合x中的90删除
x.update(z) # 等价 x = x | y
# 以下方法,参数y不必是一个集合,但必须是一个可以通过set()函数变成集合的可迭代对象
# y可以是列表,元组,字符串 等可迭代对象
x.union(y) # 并
x.intersection(y) # 交
x.issubset(y) # 是否时子集
不可变性
集合只能包含不可变的对象类型。因此列表,字典,集合不能放入集合中。元组是不可变的,可以放入集合。如果需要在一个集合中存储一个集合,可以调用内置函数frozenset()。功能类似set()函数。
借助集合可以进行顺序无关的等价性测试
原文:https://www.cnblogs.com/hogwarts-rwn/p/14500869.html