白乐天

道阻且长,行则将至。

Python脚本

数据类型转换

转为int类型

1
2
3
4
5
6
7
# 字符串转整数
num = int("123")
print(num) # 输出: 123

# 浮点数转整数(截断小数部分)
num = int(3.14)
print(num) # 输出: 3

转为float类型

1
2
3
4
5
6
7
# 字符串转浮点数
num = float("3.14")
print(num) # 输出: 3.14

# 整数转浮点数
num = float(123)
print(num) # 输出: 123.0

转为str类型

1
2
3
4
5
6
7
# 整数转字符串
text = str(123)
print(text) # 输出: "123"

# 浮点数转字符串
text = str(3.14)
print(text) # 输出: "3.14"

转为bin二进制类型

1
2
3
4
5
6
7
# 整数转二进制字符串
bin_str = bin(10)
print(bin_str) # 输出: '0b1010'

# 二进制字符串转整数
num = int("0b1010", 2)
print(num) # 输出: 10

转为hex十六进制

1
2
3
# 整数转十六进制字符串
hex_str = hex(255)
print(hex_str) # 输出: '0xff'

字符串与字节序列

1
2
3
4
5
6
7
8
str = "hello world"
str2bytes = str.encode("utf-8")
print(str2bytes)
// b'hello world'

bytes2str = str2bytes.decode("utf-8")
print(bytes2str)
// hello world

字节序列与列表

1
2
3
4
5
6
7
8
9
str = "hello world"
str2bytes = str.encode("utf-8")
bytes2list = list(str2bytes)
print(bytes2list)
// [104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]

list2bytes = bytes(bytes2list)
print(list2bytes)
// b'hello world'

int类型转字节序列,可指定字节长度和字节顺序

1
2
3
4
5
int.to_bytes(length, byteorder, *, signed=False)

// length:指定字节序列的长度
// byteorder:指定字节顺序 'big':大端序(高位字节在前) 'little':小端序(低位字节在前)
// signed:指定整数是否为有符号整数,默认为 False(无符号整数)。如果为 True,则支持负数的转换。
1
2
3
4
5
6
7
8
9
10
11
12
tt = 0x123456789abcdef
bytes_big = tt.to_bytes(8,"big")
bytes_little = tt.to_bytes(8,"little")
print("bytes_big:",bytes_big)
print("list_bytes_big:",list(bytes_big))
print("bytes_little:",bytes_little)
print("list_bytes_little:",list(bytes_little))

bytes_big: b'\x01#Eg\x89\xab\xcd\xef'
list_bytes_big [1, 35, 69, 103, 137, 171, 205, 239]
bytes_little: b'\xef\xcd\xab\x89gE#\x01'
list_bytes_little [239, 205, 171, 137, 103, 69, 35, 1]
1
int.from_bytes()

hexstr2barr

1
2
def hexstr2barr(hex):
return list(bytes.fromhex(hex))