在Python中把字符串转换成数字和把数字转换成字符串

您所在的位置:网站首页 long类型转换为varchar2 在Python中把字符串转换成数字和把数字转换成字符串

在Python中把字符串转换成数字和把数字转换成字符串

2023-03-26 03:53| 来源: 网络整理| 查看: 265

Python允许你以几种不同的方式相互转换字符串、整数和浮点数。最简单的方法是使用基本的str()、int()和float()函数。除此之外,还有其他一些方法。

桑鸟sangniao.com

在我们转换字符串为数字和数字为字符串之前,让我们先了解一下Python中字符串和数字的表示方式。

注意: 为了简化这些示例的运行和显示,我们将使用Python解释器。

字符串

Python中的字符串字面量是由双引号(")或单引号(')括起来的字符声明。Python中的字符串实际上只是一个数组,数组中每个字符都是Unicode的元素,允许您使用索引从字符串中访问单个字符。

例如,我们可以通过指定索引来访问这些字符串的单个字符:

>>> stringFirst = "Hello World!" >>> stringSecond = 'Again!' >>> stringFirst[3] 'l' >>> stringSecond[3] 'i' 数值

Python中的数字可以是整数、浮点数或复数。

整数可以是正数或负数的整数。自Python 3以来,整数是无界的,可以实际上保存任何数字。在Python 3之前,32位运行时的顶部边界是231-1,64位运行时的顶部边界是263-1。

浮点数的长度也是无限的,但浮点数必须包含一个小数点。

复数数必须有一个虚数部分,它使用j来表示:

>>> integerFirst = 23 >>> floatFirst = 23.23 >>> complextFirst = 1 + 23j 将字符串转换为数字 使用int()函数

如果您想将字符串转换为整数,最简单的方法是使用int()函数。只需将字符串作为参数传递即可:

>>> x = "23" >>> y = "20" >>> z = int(x) - int(y) >>> z 3

当将表示整数的字符串传递给int()时,这将按预期工作,但是如果您传递的字符串不包含整数值,则会遇到问题。如果在字符串中有任何非数字字符,则int()将引发异常:

>>> x = "23a" >>> z = int(x) Traceback (most recent call last): File "", line 1, in ValueError: invalid literal for int() with base 10: '23a'

如果传递有效的浮点字符串,则同样会引发此异常:

>>> x = "23.4" >>> z = int(x) Traceback (most recent call last): File "", line 1, in ValueError: invalid literal for int() with base 10: '23.4'

int()函数除了将字符串转换为整数之外,还具有另一个有用的功能,它允许您将任何基数的数字转换为基数10的整数。例如,我们可以使用base参数将以下二进制字符串转换为基数10整数:

>>> int('1101100', base=2) 108

可以对任何其他基数执行相同的操作,例如十六进制(基数16):

>>> int('6C', base=16) 108 使用float()函数

通过float()函数将字符串字面值转换为浮点数:

>>> x = "23.23" >>> y = "23.00" >>> z = float(x) - float(y) >>> z 0.23000000000000043

请注意,结果值不完全准确,因为它应该只是0.23。这与浮点数计算问题有关,而不是从字符串到数字的转换。

float()函数比int()函数提供了更多的灵活性,因为它可以解析和转换浮点数和整数:

>>> x = "23" >>> y = "20" >>> z = float(x) - float(y) >>> z 3.0

与int()不同,当它接收到非浮点数值时,float()不会引发异常。

sangniao.com

但是,如果向其传递非数字值,则会引发异常:

>>> x = "23a" >>> z = float(x) Traceback (most recent call last): File "", line 1, in ValueError: could not convert string to float: '23a'

虽然float()没有像int()一样将非基数10数字转换的能力,但是它确实有将以科学计数法表示的数字(也称为e-notation)转换的能力:

>>> float('23e-5') 0.00023 >>> float('23e2') 2300.0 使用complex()函数

通过complex()函数将字符串字面值转换为复数数。为此,字符串必须遵循特定的格式。特别是,它必须在+或-运算符周围不带有空格:

>>> x = "5+3j" >>> y = "3+1j" >>> z = complex(x) + complex(y) >>> z (8+4j)

在+或-运算符之间有任何额外的空格将导致引发异常:

https://www.sangniao.com/

>>> z = complex("5+ 3j") Traceback (most recent call last): File "", line 1, in ValueError: complex() arg is a malformed string

与float()函数一样,complex()在允许的数字类型方面也更为宽松。例如,数字的虚数部分可以完全省略,整数和浮点数也可以解析:

>>> complex("1") (1+0j) >>> complex("1.2") (1.2+0j)

正如您所看到的那样,然而,这不应该被用作int/float的更灵活的替代,因为它会自动将数字的虚数部分添加到字符串化版本中。

将数字转换为字符串 使用str()函数

str()函数可用于将任何数字类型更改为字符串。

自Python 3.0+以来,str()函数可用,因为Python 3.0+中的字符串默认为Unicode。但是,对于3.0以下的Python版本,使用unicode()函数来实现相同的目标:

>>> str(23) #将整数转换为字符串 '23' >>> str(23.3) #将浮点数转换为字符串 '23.3' >>> str(5+4j) #将复数转换为字符串 '(5+4j)'

str()的好处在于它可以处理将任何类型的数字转换为字符串的情况,因此您不需要根据要转换的数字类型选择正确的方法。

使用format()函数

另一种将数字转换为字符串的方法是使用format()函数,它允许您在字符串中设置占位符,然后将另一个数据类型转换为字符串并填充占位符。

要使用该函数,只需编写字符串,后跟.format(),并传递占位符的参数。

这是一个示例:

>>> "我的年龄是{}".format(21) '我的年龄是21'

.format()函数中的参数也可以单独引用,使用它们的位置或变量名称:

>>> "当您将{1}与{0}相乘时,您将获得{product}".format(5.5, 3, product=16.5) '当您将3与5.5相乘时,您将获得16.5'

请注意,在幕后.format()函数只是使用str()将参数转换为字符串。因此,这本质上是一种将数字转换为字符串的类似于前一节的方式,但.format()作为格式化字符串的便利函数。

结论

Python允许您以几种不同的方式相互转换字符串、整数和浮点数。

最简单的方法是使用基本的str()、int()和float()函数。除此之外,还有其他一些方法,例如format()函数。只需记住,int()、float()和complex()函数有其限制,如果输入字符串的格式不完全符合它们的预期,则可能会引发异常。

桑鸟sangniao.com

版权声明:本文为桑鸟网博主「Noctiflorous」的原创文章,转载请附上原文出处链接及本声明。

本文标题:在Python中把字符串转换成数字和把数字转换成字符串

本文地址:https://news.sangniao.com/p/2864202187



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3