① 内置函数 bin()、oct()、hex() 用来将整数转换为二进制、八进制和十六进制形式,这3个函数都要求参数必须为整数。
print((bin(168), oct(168), hex(168))) # 把数字转换为二进制串、八进制串、十六进制串
内置函数 int() 用来将其他形式的数字转换为整数,参数可以为整数、实数、分数或合法的数字字符串,当参数为数字字符串时,还允许指定第二个参数 base 用来说明数字字符串的进制。其中,base 的取值应为 0 或 2~36 的整数,其中 0 表示按数字字符串隐含的进制进行转换。
print(int(-3.1415926)) # 把实数转换为整数
from fractions import Fraction
from decimal import Decimal
print(Fraction(8, 3), int(Fraction(8, 3))) # 把分数转换为整数
print(Decimal(10 / 3), int(Decimal(10 / 3))) # 把高精度实数转换为整数
print(int('0xa8', 16), int('a8', 16)) # 把十六进制数转换为十进制数
print(int(bin(255), 2)) # 二进制与十进制之间的转换
内置函数 float() 用来将其他类型数据转换为实数,complex() 可以用来生成复数。
print(float(3)) # 把整数转换为实数
print(float('3.1415926')) # 把数字字符串转换为实数
print(float('inf')) # 无穷大,其中 inf 不区分大小写
print(complex(3)) # 指定实部
print(complex(3, 5)) # 指定实部和虚部
print(complex('inf'))
print(complex('nan')) # 非数字,not a number 的缩写
print(float('nan') == float('nan')) # 无法比较大小
② ord() 和 chr() 是一对功能相反的函数,ord() 用来返回单个字符的 Unicode 码,而 chr() 则用来返回 Unicode 编码对应的字符,str() 则直接将其任意类型参数转换为字符串。
print(ord('a'), ord('A')) # 查看指定字符的Unicode编码
print(chr(80)) # 返回数字对应的字符
print(ord('A') + 5, chr(ord('A') + 5))
print((ord('欢'), ord('迎'), ord('你')))
print(''.join(map(chr, (27426, 36814, 20320))))
print([str(255)]) # 直接变成字符串
print((str([1, 2, 3]), str((1, 2, 3)), str({1, 2, 3})))
内置类 ascii 可以把对象转换为 ASCII 码表示形式,必要时使用转义字符来表示特定的字符。
print((ascii('a'), ascii('egj'), type(ascii('g'))))
print((ascii('北京欢迎你'), ascii('你好')))
print((eval("'\\u4f60\\u597d'"), type(eval("'\\u4f60\\u597d'"))))
内置类 bytes 用来生成字节串,或者把指定对象转换为特定编码的字节串。
print(bytes()) # 生成空字节串
print(bytes(3)) # 生成长度为3的字节串
print(bytes('列表', 'utf-8')) # 把字符串转换为字节串
print(bytes('列表', 'gbk')) # 指定不同的编码格式
print('列表'.encode('gbk'))
print(list('列表'.encode())) # 把字节串转换为列表
print(bytes([10, 20, 30, 40])) # 把整数列表转换为字节串
③ list()、tuple()、dict()、set()、frozenset() 用来把其他类型的数据转换为列表、元组、字典、可变集合和不可变集合,或者创建空列表、空元组、空字典和空集合。
print(range(5), type(range(5)), list(range(5))) # 把range对象转换为列表
print(tuple([0, 1, 2, 3, 4]))
print(dict(zip('1234', 'efghij'))) # 创建字典
s = set('122333444455555')
s.add(8)
s.add('8')
print(s) # 创建可变集合,自动去除重复
print(frozenset('abbcccdddd')) # 不可变集合 frozenset 不支持元素添加与删除
④ 内置函数 type() 和 isinstance() 可以用来判断数据类型,常用来对函数参数进行检查,可以避免错误的参数类型导致函数崩溃或返回意料之外的结果。
print(type(3)) # 查看3的类型
print(type([3])) # 查看3的类型
print(type({3}) in (list, tuple, dict, set)) # 判断{3}是否为list,tuple,dict,set类型的实例
print(isinstance(3, int)) # 判断3是否为int类型的实例
print(isinstance(3j, (int, complex, float)))