如何在Python 3中转换数据类型

介绍

在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为一个字符串值,你可以通过 12str()方法:
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.305524.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中转换数据类型在编写程序时为您提供了额外的灵活性。
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏