跳至主要内容

如何在 Python 中将字符串转换为整数

在这篇快速教程中,了解如何将 Python 字符串转换为整数。
· 5分钟 阅读

使用 AI 探索

数据类型错误是 Python 中最常见的障碍之一,尤其对初学者而言更是如此。当数字以字符串形式存在时,常见的数据类型错误就会出现,进而导致误算、错误的结论,甚至直接报错。

在本教程中,我将向您展示如何处理这些错误,以及如何将 Python 字符串转换为整数。

快速答案:如何将 Python 字符串转换为整数

如果您的字符串表示一个整数(如 12),请使用 int() 函数将字符串转换为整数。如果字符串表示一个小数(如 12.5),请使用 float() 函数将字符串转换为浮点数。以下是示例:

# Converting a string into an integer 
number_str = "10"
number_int = int(number_str)
print(number_int)  # Output: 10

# Converting a string into a float 
decimal_str = "10.5"
decimal_float = float(decimal_str)
print(decimal_float)  # Output: 10.5

Python 中的数据类型

Python 是一门动态类型语言,包含多种数据类型,从字符串、整数到浮点数,以及布尔值。理解这些类型对于高效编程至关重要。以下是 Python 数据类型的一个非穷尽列表:

  • 字符串(str):用引号括起来的文本数据。例如:greeting = "Hello, World!"
  • 整数(int):不含小数部分的整数值。例如:age = 25
  • 浮点数(float):带有小数点的数字。例如:height = 5.9
  • 布尔值(bool):表示 True 或 False
  • 列表(list):有序的元素集合,可以包含不同数据类型。列表是可变的,允许修改。例如:colors = ["red", "blue", "green"]
  • 字典(dict):键-值对的集合,可通过键存取数据。例如:person = {"name": "Alice", "age": 30}

想了解更多数据类型,请阅读 DataCamp 的这篇Python 中的数据结构教程。

为什么要把字符串转换为整数?

正确的数据类型是准确计算的基础。看下面这个例子。假设我们有两个数字 5 和 10,但它们是字符串。如果把它们相加,结果会是 510,因为它们被当作字符串,用 + 运算符做了拼接。

要得到准确的结果(此处为 15),需要在求和前把它们转换为整数。这个例子很简单,但如果把它应用到一份公司营收数据集上——就可能导致错误的业务决策。

# Summing two numbers that are actually strings
'5'+'10'# This returns 510

# Converting them to integers before summing them
int('5') + int('10') # This returns 15

如何在 Python 中将字符串转换为整数

当处理以字符串格式存储的数值数据时,通常需要将这些字符串转换为整数,以便进行计算或其他数值操作。Python 提供了一个直接的方法:使用 int() 函数。该函数接收字符串作为输入,并在字符串表示有效的整数时返回其整数形式。

# Convert a string to an integer
numeric_string = "42"
converted_integer = int(numeric_string)
print(converted_integer)  # Output: 42

如何在 Python 中将字符串转换为浮点数

当字符串表示带小数点的数字时,直接转换为整数既不合适,也会报错。此时,您可以使用 Python 的 float() 函数将这些字符串转换为浮点数。在处理高精度数据(如金融数据或传感器测量数据)时,使用浮点数类型尤为重要。

# Convert a string to a float
decimal_string = "3.14"
converted_float = float(decimal_string)
print(converted_float)  # Output: 3.14

在 Python 中将字符串转换为数值时的常见问题

在将字符串转换为数字时,有一些陷阱可能导致错误或意外结果。

转换非数字字符串

尝试把非数字字符串(如 'hello world')转换为数字会引发错误。如果您想以编程方式捕获无法转换为整数的字符串,可以使用 try/except 代码块来优雅地处理这类情况。

try:
    invalid_number = int("hello world")
except ValueError:
    print("This is not a number.")

将表示浮点数的字符串转换为整数

直接将表示浮点数的字符串转换为整数会引发 ValueError。虽然可以把表示整数的字符串转换为浮点数,但反过来不行。下面是可能出现的错误示例:

string_decimal = '13.5'
# Convert string_decimal into an integer
int(string_decimal) 
# Returns ValueError: invalid literal for int() with base 10: '13.5'

不同进制的字符串

当我们谈论数字的“进制”时,指的是数字所采用的计数系统。最常见的是十进制(基数为 10),这也是我们日常生活中使用的计数系统,由 0 到 9 共十个数字组成。

不过,在不同领域,尤其是计算机领域,还存在其他进制。例如:

  • 二进制(基数 2):只使用 0 和 1。它是计算机的基础语言。
  • 八进制(基数 8):使用 0 到 7 的数字。如今较少见,但在早期计算系统中曾被使用。
  • 十六进制(基数 16):使用 0 到 9 的数字以及 A 到 F 的字母(其中 A=10,F=15)。在计算领域广泛使用,尤其是在网页设计中的颜色编码和内存地址中。

当字符串表示的数字不是十进制时,您需要指定进制,这样 Python 才能正确解析。以下是一个十六进制的示例:

# Convert a hexadecimal string to an integer
hex_string = "1A"  # In base 16, 1A represents the decimal number 26
converted_int = int(hex_string, 16)  # The '16' tells Python it's in base 16
print(converted_int)  # Output: 26

结语

在Python 中处理数据类型与类型转换是编程的基础技能。通过理解如何准确地将字符串转换为整数与浮点数,您可以避免常见陷阱,确保数据处理的正确性。若想进一步学习 Python,请查看我们的Python 初学者速查表、如何学习 Python指南,以及我们的Python 课程。

Adel Nehme

作者

Adel Nehme

Adel 是一位数据科学教育者、演讲者,以及 DataCamp 的媒体副总裁。他推出了多门关于数据分析、机器学习和数据工程的课程与直播培训,热衷于在组织内推广数据技能与数据素养,并关注技术与社会的交汇。他拥有数据科学与商业分析硕士学位。闲暇时,您常能发现他陪他的猫 Louis 一起玩耍。

常见问题

如何在 Python 中检查字符串是否为整数?

要检查字符串是否表示整数,如果字符串只包含数字且不带正负号(+/-)或小数点,可使用 str.isdigit() 方法:

string = "42"
if string.isdigit():
    print("The string is an integer.")
else:
    print("The string is not an integer.")

对于可能包含正负号(+/-)的字符串,可以使用更稳健的方法:

string = "-42"
try:
    int(string)
    print("The string is an integer.")
except ValueError:
    print("The string is not an integer.")
如何在 Python 中将整数转换为字符串?

使用 str() 函数将整数转换为字符串。例如:

number = 42
string_number = str(number)
print(string_number)  # Output: "42"
如果字符串包含小数,而我想将其转换为整数,该怎么办?

先使用 float() 函数将字符串转换为浮点数,然后再用 int() 强制转换为整数。例如:

decimal_string = "13.5"
converted_integer = int(float(decimal_string))
print(converted_integer)  # Output: 13

主题