类型转换及相关函数
4.11 类型转换及相关函数
在Python中,不同的数据类型是可以相互转换的,下面列举一些之前没有介绍但是比较常见的数据类型转换及相关函数,以供参考。
4.11.1 进制转换类
4.11.1.1 bin(x)
描述
将整数转变为以“0b”前缀的二进制字符串。
示例
>>> bin(3)
>>> bin(-10)
'0b11'
'-0b1010'
4.11.1.2 int(x)、int(x, base=10)
描述
返回x的整数部分。如果有base参数,则x必须为字符串,返回的结果为将x作为base参数指定的进制数转换成10进制后的数。
示例
>>> int(1.5)
>>> int(-1.5)
>>> int('2.3')
>>> int('16', 8)
1
-1
2
14
4.11.1.3 oct(x)
描述
将一个整数转变为一个前缀为“0o”的八进制字符串。
示例
>>> oct(16)
>>> oct(22)
'0o20'
'0o26'
4.11.1.4 hex(x)
描述
将整数转换为以“0x”为前缀的小写十六进制字符串。
示例
>>> hex(16)
>>> type(hex(16))
'0x10'
<class 'str'>
4.11.2 bool([x])
描述
返回x的布尔值,结果为True 或 False。如果 x 为 False 或省略,则返回 False;否则返回 True。
示例
>>> bool()
>>> bool(5)
False
True
4.11.3 chr(int)、ord(char)
描述
返回 Unicode 码位为整数 i 的字符的字符串。ord()函数是chr()的逆函数。
chr()函数的实参的合法范围是 0 到 1,114,111(16 进制表示是 0x10FFFF)。如果 i 超过这个范围,会触发 ValueError 异常。
示例
for i in range(80, 85):
print(chr(i))
P
Q
R
S
T
4.11.4 float([x])
描述
返回从数字或字符串 x 生成的浮点数。
示例
>>> float(25)
>>> float('5.3')
25.0
5.3
4.11.5 range(stop)、range(start, stop[, step])
描述
range函数返回一个不可变的序列类型。有2种调用方式:
第1种只需要输入stop参数,为一个大于0的正整数。返回的序列的值为0到stop-1,步长为1。
第2种需要输入起始值和结束值,step作为可选参数。返回的序列的值为start到stop-1,步长为step。step可以为负数,若为负数时,则start必须大于stop。
示例
from typing import *
r = range(3)
print(r)
print(type(r))
print(isinstance(r, Iterable))
print(isinstance(r, Iterator))
for i in r:
print(i)
range(0, 3)
<class 'range'>
True
False
0
1
2
r = range(1, 11, 2)
for i in r:
print(i)
1
3
5
7
9
r = range(11, 1, -2)
for i in r:
print(i)
11
9
7
5
3
4.11.6 slice(stop)、slice(start, stop[, step])
描述
返回一个 slice 对象,代表由 range(start, stop, step) 指定索引集的切片。 其中参数 start 和 step 的默认值为 None。slice函数的两种用法关于参数的部分和range函数一致,可以参考range函数参数用法。
it[slice(start, stop, step)] 等效于 it[start:stop:step]
有了slice对象可以很方便的对多个可迭代对象进行相同的切片。
示例
a = 'abcdefgh'
x = slice(2, 8, 2)
print(x)
print(type(x))
print(a[x])
print(a[2:8:2])
slice(2, 8, 2)
<class 'slice'>
ceg
ceg
4.11.7 str(obj)
描述
返回obj的字符串版本
示例
>>> str(5+3)
>>> str([1, 2, 3])
'8'
'[1, 2, 3]'