当前位置:  开发笔记 > 编程语言 > 正文

在Python中进行类型转换

如何解决《在Python中进行类型转换》经验,为你挑选了1个好方法。

我需要将Python中的字符串转换为其他类型,例如unsigned和signed 8,16,32和64位int,double,float和strings.

我怎样才能做到这一点?



1> Adam Rosenfi..:

您可以使用以下int函数将字符串转换为32位有符号整数:

str = "1234"
i = int(str)  // i is a 32-bit integer

如果字符串不表示整数,则会出现ValueError异常.但请注意,如果字符串确实表示一个整数,但该整数不适合32位signed int,那么实际上您将获得一个类型的对象long.

然后,您可以使用一些简单的数学将其转换为其他宽度和签名:

s8 = (i + 2**7) % 2**8 - 2**7      // convert to signed 8-bit
u8 = i % 2**8                      // convert to unsigned 8-bit
s16 = (i + 2**15) % 2**16 - 2**15  // convert to signed 16-bit
u16 = i % 2**16                    // convert to unsigned 16-bit
s32 = (i + 2**31) % 2**32 - 2**31  // convert to signed 32-bit
u32 = i % 2**32                    // convert to unsigned 32-bit
s64 = (i + 2**63) % 2**64 - 2**63  // convert to signed 64-bit
u64 = i % 2**64                    // convert to unsigned 64-bit

您可以使用以下float函数将字符串转换为浮点数:

f = float("3.14159")

Python浮动是其他语言所指的double,即它们是64位.Python中没有32位浮点数.


有趣的是,不同的可以接受完全相同的问题的答案http://stackoverflow.com/questions/374318/conversion-of-unicode-string-in-python#374335
推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有