介绍
在Python,
数据类型,用于将一个特定类型的数据进行分类,确定可分配到可以在其上执行的类型和操作的值。当编程时,有时我们需要在类型之间转换值,以便以不同的方式操作值。例如,我们可能需要将数字值与字符串连接,或者在初始化为整数值的数字中表示小数位。 本教程将指导您完成转换数字,字符串,元组和列表,以及提供示例以帮助熟悉不同的用例。
转换数字类型
在Python中,有两个
数字数据类型 :
整数和
浮点数或浮动。有时你正在处理别人的代码,并需要将一个整数转换为浮点型,反之亦然,或者你可能会发现你一直在使用一个整数,当你真正需要的是一个浮点数。 Python有内置的方法允许你容易地将整数转换为浮点数和浮点数为整数。
将整数转换为浮点型
Python的方法
float()
将整数转换为浮动。要使用此函数,请在括号内添加一个整数:
float(57)
在这种情况下,
57
将被转换为
57.0
。 你也可以用这个变量。让我们来声明
f
为等于
57
,然后打印出新的float:
f = 57
print(float(f))
Output57.0
通过使用
float()
函数,我们可以整数转换为浮动。
将浮点数转换为整数
Python中也有一个内置的功能,以花车转换为整数:
int()
。 该
int()
函数的工作原理类似于
float()
函数:你可以添加括号将其转换为一个整数内部的浮点数:
int(390.8)
在这种情况下,
390.8
将被转换为
390
。 你也可以用这个变量。让我们宣告
b
为等于
125.0
,而
c
为等于
390.8
,然后打印出新的花车:
b = 125.0
c = 390.8
print(int(b))
print(int(c))
Output125
390
当转换花车为整数的
int()
函数,Python的切断十进制和浮点来创建一个整数剩余的数字。 尽管我们可能要舍390.8高达391,Python将不会通过这样做
int()
函数。
分数转换为数字
在Python 3中,相关的商在进行除法时,从整数转换为浮点数,但不是在Python 2中。也就是说,当你除以5时,在Python 3中,你将得到一个答案的浮点数(2.5):
a = 5 / 2
print(a)
Output2.5
在Python 2,因为你正在处理两个整数,你会收到一个整数早在你的答案,而不是:
5 / 2 = 2
阅读“
Python 2比Python 3:现实思考 ”的有关Python 2之间差异的详细信息和Python 3。
使用字符串转换
一个
串是一个或多个字符(字母,数字,符号)的序列。字符串是计算机程序中常见的数据形式,我们可能需要将字符串转换为数字或数字转换为字符串,特别是在我们接收用户生成的数据时。
将数字转换为字符串
我们可以通过使用数字转换为字符串
str()
方法。我们将一个数字或一个变量传递到方法的括号中,然后该数字值将被转换为字符串值。 让我们先看看转换整数。要将整数转换
12
为一个字符串值,你可以通过
12
到
str()
方法:
str(12)
当运行
str(12)
与Python的交互shell
python
在终端窗口的命令,您会收到以下的输出:
Output'12'
数字12周围的引号表示该数字不再是整数,但现在是一个字符串值。 使用变量,我们可以开始看到将整数转换为字符串是多么实用。假设我们要跟踪用户的日常编程进度,并输入他们每次写入多少行代码。我们想向用户显示此反馈,并将同时打印字符串和整数值:
user = "Sammy"
lines = 50
print("Congratulations, " + user + "! You just wrote " + lines + " lines of code.")
当我们运行此代码时,我们会收到以下错误:
OutputTypeError: Can't convert 'int' object to str implicitly
我们无法连接字符串和整数在Python,所以我们必须将变量转换
lines
是一个字符串值:
user = "Sammy"
lines = 50
print("Congratulations, " + user + "! You just wrote " + str(lines) + " lines of code.")
现在,当我们运行代码,我们收到以下输出,祝贺我们的用户的进步:
OutputCongratulations, Sammy! You just wrote 50 lines of code.
如果我们要将float转换为字符串,而不是整数转换为字符串,我们遵循相同的步骤和格式。当我们通过一个浮动到
str()
方法,浮体的字符串值,将被退回。我们可以使用浮点值本身或变量:
print(str(421.034))
f = 5524.53
print(str(f))
Output421.034
5524.53
我们可以测试,以确保它是正确的连接一个字符串:
f = 5524.53
print("Sammy has " + str(f) + " points.")
OutputSammy has 5524.53 points.
我们可以确保我们的浮点正确地转换为字符串,因为执行的连接没有错误。
将字符串转换为数字
字符串可以通过使用被转换为数字
int()
和
float()
方法。 如果你的字符串没有小数位,你很可能想通过将其转换为整数
int()
方法。 让我们使用用户Sammy跟踪每天写的代码行的示例。我们可能想用数学操作这些值,以便为用户提供更有趣的反馈,但这些值当前存储在字符串中:
lines_yesterday = "50"
lines_today = "108"
lines_more = lines_today - lines_yesterday
print(lines_more)
OutputTypeError: unsupported operand type(s) for -: 'str' and 'str'
因为这两个数值都存储在字符串中,所以我们收到一个错误。操作数
-
减法不是两个字符串值的有效操作。 让我们修改代码以包括
int()
将在字符串转换为整数的方法,并允许我们做数学与价值观这些,便是最初的字符串。
lines_yesterday = "50"
lines_today = "108"
lines_more = int(lines_today) - int(lines_yesterday)
print(lines_more)
Output58
可变
lines_more
是自动的整数,它等于58在本实施例的数值。 我们也可以转换的数字在上面的例子中,通过使用浮动值
float()
来代替的方法,
int()
方法。 而不是接收的输出
58
,我们会收到的输出
58.0
,浮点型。 用户Sammy以十进制值获取点数
total_points = "5524.53"
new_points = "45.30"
new_total_points = total_points + new_points
print(new_total_points)
Output5524.5345.30
在这种情况下,使用
+
操作数与两个字符串是一个有效的操作,但它是连接两个字符串而不是增加两个数值在一起。因此,我们的输出看起来不寻常,因为它只是把两个值放在一起。 我们希望将这些字符串转换为浮动与执行任何的数学之前
float()
方法:
total_points = "5524.53"
new_points = "45.30"
new_total_points = float(total_points) + float(new_points)
print(new_total_points)
Output5569.83
现在我们已经转换了两个字符串彩车,我们收到了预期的效果,增加了
45.30
至
5524.53
。 如果我们尝试将具有小数位数的字符串值转换为整数,我们将收到错误:
f = "54.23"
print(int(f))
OutputValueError: invalid literal for int() with base 10: '54.23'
如果我们在一个字符串传递一个十进制值
int()
方法中,我们会收到一个错误,因为它不会转换为整数。 将字符串转换为数字使我们能够快速修改我们正在使用的数据类型,以便我们可以对最初作为字符串进行转换的数值执行操作。
转换为元组和列表
您可以使用的方法
list()
和
tuple()
分别传递给它们到列表和元组数据类型的值转换。在Python中:
- 一个列表是包含在方括号内的元素的一个可变有序序列
[ ]
- 一个元组是包含在括号中元素的不可变的有序序列
( )
转换为元组
让我们从将列表转换为元组开始。将列表转换为元组,因为它是不可变的数据类型,可以允许对我们创建的程序进行大量优化。当我们使用方法
tuple()
将返回传递给它的值的元组的版本。
print(tuple(['pull request', 'open source', 'repository', 'branch']))
Output('pull request', 'open source', 'repository', 'branch')
我们看到在输出中打印出一个元组,因为项目现在包含在括号中而不是方括号中。 让我们用
tuple()
与代表列表中的变量:
sea_creatures = ['shark', 'cuttlefish', 'squid', 'mantis shrimp']
print(tuple(sea_creatures))
Output('shark', 'cuttlefish', 'squid', 'mantis shrimp')
再次,我们看到列表值更改为元组值,由括号指示。我们可以将任何可迭代类型转换为元组,包括字符串:
print(tuple('Sammy'))
Output('S', 'a', 'm', 'm', 'y')
因为我们可以通过琴弦迭代,我们可以将它们转换成元组与
tuple()
方法。但是,对于不可迭代的数据类型,例如整数和浮点数,我们将收到类型错误:
print(tuple(5000))
OutputTypeError: 'int' object is not iterable
虽然是可能的整数转换为字符串,然后转换为一个元组,如在
tuple(str(5000))
最好是选择在复杂的转换可读代码。
转换为列表
当您需要具有该值的可变版本时,将值(尤其是元组)转换为列表可能非常有用。 我们将使用
list()
方法如下元组转换到一个列表。 因为创建一个列表的语法使用了括号,一定要包括的括号
list()
方法,在这种情况下,
print()
方法,以及:
print(list(('blue coral', 'staghorn coral', 'pillar coral')))
Output['blue coral', 'staghorn coral', 'pillar coral']
方括号预示着一个清单已经从通过所传递的原始元组返回值
list()
方法。 为了使代码更具可读性,我们可以使用变量删除一对括号:
coral = ('blue coral', 'staghorn coral', 'pillar coral')
list(coral)
如果我们打印
list(coral)
,我们会得到与上面相同的输出。 就像元组,字符串可以转换为列表:
print(list('shark'))
Output['s', 'h', 'a', 'r', 'k']
这里的字符串
'shark'
被转换到一个列表,提供该原始值的一个可变的版本。
结论
这个Python教程演示了如何将几种重要的本地数据类型转换为其他数据类型,主要通过内置方法。能够在Python中转换数据类型在编写程序时为您提供了额外的灵活性。