简介
Python 是一种常用于系统集成目的的编程语言。这种语言使用了一种叫做 ‘数据类型’。这些数据类型有助于对给定的数据类型进行分类或定义。这意味着特定的数据类型适用于你可以对其应用的具体值和操作。每种数据类型的编程和编辑方式都不同。这是因为每种数据类型都具有不同的性质。例如,你可能正在处理字符串或整数。
本指南的目的是帮助你熟悉 Python 中的各种数据类型。不仅如此,我们还将深入讨论如何将这些数据类型相互转换。在本教程结束时,你应该了解数字、字符串、元组和列表等数据类型,以及如何转换它们。
数字转换
当我们在 Python 中谈论数字时,我们可能是指两种选择之一。我们可能正在处理 整数 或 浮点数。有时你可能需要将其中一种转换为另一种。你可以轻松地将整数转换为浮点数,将浮点数转换为整数。
-
转换:整数到浮点数
首先,我们将开始探索如何将整数转换为浮点数。实现这一目标的方法是使用一个名为 float() 的命令。该函数将把任何给定的整数转换为带小数的浮点数。你只需将整数放在括号内即可。例如,假设你想将整数 57 转换为浮点数据类型。以下是转换的方法:
|
1 |
float(57) |
运行此命令的结果是,整数 57 将转换为浮点数 57.0.
另一种方法是使用变量。你可以通过变量来表示整数,然后使用上述命令打印浮点数。假设你声明变量 f 等于 57。在这种情况下,转换过程如下:
|
1 2 3 |
f = 57 print(float(f)) |
|
1 2 3 |
输出 57.0 |
-
转换:浮点数到整数
你也可以将浮点数转换为整数。与之前的命令类似,可以使用 int() 函数进行此转换。就像上次一样,你只需在函数后面的括号内添加浮点数即可。
在我们的示例中,我们将把浮点数 390 转换为整数。要进行转换,我们将运行以下命令:
|
1 |
int(390.8) |
运行此函数的结果是,390 将转换为其浮点数形式:390.8.
同样,你也可以借助变量进行转换。不仅如此,你还可以同时进行多个转换。假设 b 等于 125.0 并且 c 等于 390.8。以下是打印这些浮点值的方法:
|
1 2 3 4 5 |
b = 125.0 c = 390.8 print(int(b)) print(int(c)) |
|
1 2 3 4 |
输出 125 390 |
如你所见,整数已成功转换为浮点数。
在浮点数到整数的转换过程中,需要记住的一件重要事情是,该函数不会对数值进行四舍五入。这意味着浮点数的小数部分会被直接移除。该函数不会将像 390.8 这样的值四舍五入为 390——它只会简单地移除 0.8 部分以给你一个整数。
-
转换:通过除法
你也可以通过除法将整数转换为浮点数。整数相除可能会得到一个作为浮点数的商。例如,当 5 除以 2 时,你得到的答案将是 2.5,这是一个浮点数。来看一下:
|
1 2 |
a = 5 / 2 print(a) |
|
1 2 3 |
输出 2.5 |
这是 Python 3 的一个特殊功能。在 Python 2 中,执行此类除法只会得到一个整数作为答案,就像这样: 5 / 2 = 2.
使用字符串进行转换
在我们开始讨论如何使用 strings,您需要了解什么是字符串。如果您还不了解,字符串就是字符的序列。这可以是一串字母、数字、符号或任何其他字符。您可能知道字符串与计算机数据有关。这是因为计算机经常使用这种数据类型来执行操作。
如果您正在处理用户生成的数据,那么您将需要经常进行这些转换。这就是为什么了解如何将数字转换为字符串以及将字符串转换为数字会非常方便。
-
转换:数字转换为字符串
您可以使用 str() 函数将数字转换为字符串。与之前一样,您需要将要转换的值放在括号内。这个值可以是一个数字,也可以是一个变量。首先,让我们看看如何将一个整数(例如 12)转换为字符串值:
|
1 |
str(12) |
|
1 2 3 |
Output '12' |
如您所见,输出显示了一个字符串值。字符串值由引号表示。
另一方面,您也可以在函数中放入变量而不是整数。这就是该函数真正有用的地方。例如,假设您想跟踪并报告用户在特定时间段内编写了多少行代码。要向用户显示此信息,您需要同时打印出字符串和整数值,如下所示:
|
1 2 3 4 |
user = "Sammy" lines = 50 print("恭喜," + user + "!你刚刚写了 " + lines + " 行代码。") |
不幸的是,如果您尝试运行上述代码,您将收到如下错误:

这意味着您需要将变量 lines 转换为字符串值才能运行该代码。
|
1 2 3 4 |
user = "Sammy" lines = 50 print("恭喜," + user + "!你刚刚写了 " + str(lines) + " 行代码。") |
现在您已经放入了转换函数,您将能够成功运行该命令。您将看到类似以下的输出:
|
1 2 3 |
Output 恭喜, Sammy! 你 刚刚 写了 50 行 的 代码. |
类似地,如果您希望将浮点数而不是整数添加到字符串中,您也必须执行相同的操作。与之前一样,您可以直接添加该值,也可以使用变量。例如:
|
1 2 3 |
print(str(421.034)) f = 5524.53 print(str(f)) |
|
1 2 3 4 |
Output 421.034 5524.53 |
如果您想确保值是正确的,可以像这样将其与字符串拼接:
|
1 2 |
f = 5524.53 print("Sammy 有 " + str(f) + " 分。") |
|
1 2 3 |
Output Sammy 有 5524.53 分. |
由于您没有收到错误,这意味着转换成功。
-
转换:字符串转换为数字
同样地,您也可以将字符串转换为数字。如果您的字符串没有任何小数位,那么最好将其转换为整数。您可以使用 int() 函数进行转换。
我们将继续使用之前整数转换的示例。因此,假设一个名为 Sammy 的用户想要每天跟踪他们的代码编写进度。作为一名程序员,您希望以一种富有创意的方式向用户展示这些信息。但由于这些值是以字符串形式存储的,您无法对它们应用一些基本的运算符,例如 –(减法)。您可以在以下内容中观察到这一点:
|
1 2 3 4 5 6 |
lines_yesterday = "50" lines_today = "108" lines_more = lines_today - lines_yesterday print(lines_more) |

如您所见,该运算符不适用于字符串值。相反,您会收到一个错误。为了能够处理这些值,您需要使用 int() 函数将字符串转换为整数:
|
1 2 3 4 5 6 |
lines_yesterday = "50" lines_today = "108" lines_more = int(lines_today) - int(lines_yesterday) print(lines_more) |
|
1 2 3 |
输出 58 |
在这里,lines_more 是一个变量。这个变量是一个整数,等于结果值,在我们的示例中是 58。
另一方面,你可以通过使用 float() 函数来将字符串转换为浮点数(如果存在小数的话)。在这个示例中,我们将使用用户 Sammy 赚取的积分,而不是他们编写的行数。积分以小数形式记录:
|
1 2 3 4 5 6 |
total_points = "5524.53" new_points = "45.30" new_total_points = total_points + new_points print(new_total_points) |
|
1 2 3 |
输出 5524.5345.30 |
虽然输出没有报错,但它仍然是不正确的。在这种情况下,运算符 + 或加法起作用了。但它并没有将两个数字相加,而只是简单地将两个字符串值并排放在一起。
这就是为什么你需要先使用 float() 函数将这些字符串转换为浮点值:
|
1 2 3 4 5 6 |
total_points = "5524.53" new_points = "45.30" new_total_points = float(total_points) + float(new_points) print(new_total_points) |
|
1 2 3 |
输出 5569.83 |
如上所示,这两个值被相加了。请记住:如果你尝试将小数形式的字符串值转换为整数,你将得到如下错误:
|
1 2 |
f = "54.23" print(int(f)) |

因此,你需要先将字符串数据类型转换为数字。然后,你就可以轻松地对数值进行其他操作和转换。
转换为元组和列表
列表和 元组 是你可以在 Python 3 中使用的其他几种数据类型。这两者都由一系列元素组成。两者的区别在于,列表是可变的,而元组是不可变的。此外,列表的元素放在方括号中 [ ],而元组中的元素则放在圆括号中 ( ).
-
转换:列表到元组
首先,让我们探索如何将列表转换为元组。如果你需要不可变的数据类型,你可能需要进行这种转换。为此,你需要使用函数 tuple():
|
1 |
print(tuple(['pull request', 'open source', 'repository', 'branch'])) |
|
1 2 3 |
输出 ('pull request', 'open source', 'repository', 'branch') |
如你所见,列表中的项现在位于元组中。这由包围元素的圆括号表示。
你也可以将 tuple() 函数与等同于项目列表的变量一起使用:
|
1 2 3 |
sea_creatures = ['shark', 'cuttlefish', 'squid', 'mantis shrimp'] print(tuple(sea_creatures)) |
|
1 2 3 |
输出 ('shark', 'cuttlefish', 'squid', 'mantis shrimp') |
方便的是,你可以将任何数据类型转换为元组。例如,以下是将字符串转换为元组的方法:
|
1 |
print(tuple('Sammy')) |
|
1 2 3 |
输出 ('S', 'a', 'm', 'm', 'y') |
字符串可以转换为元组,因为它们是可迭代的。可以理解的是,不可迭代的数据类型无法转换为元组。假设你希望将一些整数或浮点数转换为元组。如果你运行 tuple() 函数,你将收到如下错误:
|
1 |
print(tuple(5000)) |
|
1 2 3 |
输出 TypeError: 'int' object is not iterable |
类型错误表明该整数是不可迭代的。这就是无法进行转换的原因。一种复杂的方法是先将整数转换为字符串,然后再转换为元组。您可以使用以下函数来做到这一点:tuple(str(5000))。但我们建议避免这种复杂的操作。
-
转换:元组到列表
相反,如果您需要可变数据,则可能必须将元组转换为列表。为此,您将使用 list() 函数,如下所示:
|
1 |
print(list(('blue coral', 'staghorn coral', 'pillar coral'))) |
|
1 2 3 |
Output ['blue coral', 'staghorn coral', 'pillar coral'] |
方括号的存在表明所得输出是一个元组。当编写代码使用 list(),您必须确保为 list() 方法以及 print() 方法都包含括号。然而,这会使代码有些难以阅读。为了降低复杂性,您可以通过使用变量来省略一对括号:
|
1 2 3 |
coral = ('blue coral', 'staghorn coral', 'pillar coral') list(coral) |
与元组类似,您也可以直接将字符串转换为列表:
|
1 |
print(list('shark')) |
|
1 2 3 |
Output ['s', 'h', 'a', 'r', 'k'] |
结论
如果您正在寻找在 Python 3 中转换数据类型的方法,本指南将对您有所帮助。我们详细讨论了不同的数据类型,以及如何使用 Python 内置函数将它们相互转换。了解这些转换将使您的编程体验更加轻松和深入。
要进一步探索您可以使用 Python 做些什么,请关注我们的其他指南:
- 查看 如何在 Ubuntu 16.04 上安装 Python 3 并设置本地编程环境.
- 跟随学习 如何使用 Python 提取 Twitter 数据.
- 学习 如何使用 Python 获取纳斯达克每分钟的数据.
- 您还可以查看 如何利用 CloudSigma Python 脚本在我们的平台上自动将云盘快照转换为完整云盘.
祝您计算愉快!
评论
暂无评论。发表第一条评论吧。