Python基本数据类型转换

基本类型转换

python3与python2通用函数:

int('123456',10) # 转换为指定进制的整数
hex(123456) # 整数转换为16进制串,转换后类型为字符串
bin(123) # 整数转换为2进制串
oct(123) # 整数转换为8进制串

python2专用函数:

'abcd'.encode('hex') # 字符串转换为16进制串,对应字符的ascii码
'61626364'.decode('hex') # ascii码转换为对应的字符串

特别注意:python3比python2多了个字节的数据类型,python3字节专用函数:

# 字符串转字节
bytes('str',encoding='utf8')
'str'.encode(encoding='utf8')

# 字节转字符串
str(b'byte',encoding='utf8')
b'str'.decode(encoding='utf8')

python中的C语言数据类型

使用第三方库 numpy:

import numpy as np
a = np.int32(0xffffffff)  # 会报错,超范围了
b = np.uint32(0xffffffff)
print a,b

使用 ctypes 库:

from ctypes import *
a = c_uint32(0xfffffff).value
b = c_int32(0xffffffff).value # 显示为 -1
print a,b

推荐使用ctypes,numpy在超过整数范围时不能强制类型转换

python中的struct库

在程序中,输入的多个字符可以被当作一个 WORD 或者 DWORD 甚至 QWORD 的类型进行运算,运算结果放到内存再逐字节取出来!针对这种情况,struct库可以帮我们把几个字符打包成一个整数,或者将一个整数解包成几个字符,还能定义大小端模式!简言之,就是能把所使用的数据转换成在内存中存储的形式

常用到的一些格式字符

b char 1
B uchar 1
h short 2
H ushort 2
i int 4
I uint 4
l long 4
L ulong 4
q longlong 8
Q ulonglong 8
f float 4
d double 8
< 小端模式;> 大端模式;默认小端模式

使用方法:

from struct import *
a = 0x41424344
b = 0x6162
c = 0x66
print pack('<IHb',a,b,c)
print unpack('<IHb','DCBAbaf')[0]

python中的binascii库

在 python2 中有encode('hex')函数可以快速将字符串转换为对应 ascii 码的16进制数,在 python3 中只有借助binascii才能实现类似功能!

import binascii
binascii.hexlify(str) # 字符串转16进制串
binascii.unhexlify(hex_str) # 16进制串转字符串

python中的libnum神器

这个库的强大之处在于:可以直接将任意进制整数转换为字符串
常用的一些函数:

# Encoding=UTF-8
from libnum import *
s2n(str) # 字符串转整数
n2s(n) # 整数转字符串,任意进制数也能直接转,它会先把任意进制数转成16进制数
s2b(str) # 字符串转2进制位串
b2s(bin) # 2进制位串转字符串

END

111 声望
20 粉丝
0 条评论
推荐阅读
OpenCV识别企鹅滑块验证码
废话滑块验证码破解是一直都想搞的项目,毕竟多数网站都会采用滑块验证码,于是最近在修改论文的闲暇之余把这事儿给解决了。要搞现在的滑块验证码绕不开图像处理,图像处理当然是首推OpenCV-Python啦!当然我的Op...

无限期停更6阅读 13.1k

MongoDB 插入时间与更新时间(create_time/update_time)
MongoDB 在数据库层面不能像 MySQL 一样设置自动创建 create_time/update_time,自动更新 update_time

qbit阅读 13.9k评论 2

Python3 全能安装详解
小编今天折腾了一天,整个Python3 人工智能开发包。卡在pip 包管理器上大半天。找遍大部分资料,就搞不懂为嘛每篇文章就只写一个片面的知识点就不能汇总一下嘛。下面来啦,小编来整理一下,避免下次找不到了。微...

叶剑飞雪阅读 688

python3调用 prometheus API
{代码...}

台湾省委书记阅读 627

封面图
Linux下Python3.9任意目录快速编译安装和配置上手实用指南
本文叙述在Linux Centos7系统下,在任意非标准目录(意味着不需要root或sudo权限)通过官方源码包编译安装Python3.9的快速安装指南。

apollo008阅读 561

pandas 分组合并字段(qbit)
前言环境 {代码...} 正文初始化数据 {代码...} 单字段合并 {代码...} 多字段合并 {代码...} 本文出自 qbit snap

qbit阅读 440

pat 1004(dfs)
简单搜索题,主要熟悉python语法。通过字典,一个父结点对应多个儿子结点,进行储存。代码: {代码...}

十八闲客阅读 361

111 声望
20 粉丝
宣传栏