文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python数据类型转换实现方法

2022-12-08 20:58

关注

基本类型转换

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进制位串转字符串

到此这篇关于Python数据类型转换实现方法的文章就介绍到这了,更多相关Python数据类型转换内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯