将Python字符串转换为Int的方法

4,273 阅读9分钟

Python String to Int and int to String conversion tutorial with example for beginners

一个整数可以用不同的数据类型来存储。例如,代表整数的两种可能的Python数据类型如下。

  1. 整数
  2. 字符串

让我们用一个字符串字面来表示一个整数。请看下面的代码。

# app.py

v1 = "1"
v2 = "11"

print('The value of v1 is: ', v1)
print('The data type of v1 is:', type(v1))
print('The value of v2 is: ', v2)
print('The value of v2 is: ', type(v2))

输出

python3 app.py
The value of v1 is:  1
The data type of v1 is: <class 'str'>
The value of v2 is:  11
The value of v2 is:  <class 'str'>

Python 解释器理解你想把整数 1 和 11 存储为字符串。

Python str() 是一个 标准的内置函数,用于将整数转换为字符串值。

你用包含数字的字符串作为参数来调用它,然后它返回转换为整数的数字。

Python字符串转换为Int

要将Python 字符串 转换int,请使用**int()**函数。**int()**是一个内置函数,接受 初始 字符串和代表数据的可选基数作为参数,并返回一个整数。

str = "1921"
print(type(str))
print("After converting Python String to Integer")
integer = int(str)
print(integer)
print(type(integer))

输出结果

<class 'str'>
After converting Python String to Integer
1921
<class 'int'>

你可以从输出中看到,我们已经成功地将Python中的字符串转换为整数。

让我们看看如何从整数转换回字符串。

要在Python中把一个整数值存储为int,把一个数字赋给任何变量,它就会变成一个整数数据类型。当然,你也可以用String字面来存储一个整数。

如果你定义 **k = "10",**Python 会理解你想把整数 10 存储为一个字符串。

尽管有许多其他的数字系统,比如二进制十六进制,它们使用不同的基数来表示一个整数。

例如,你可以用二进制和十六进制来表示数字110(110),分别为1101110和6e。

Python不同的数字数据类型

  1. int (有符号的整数)- 它们通常被称为ints或integers,是没有小数点的正负整数。

  2. long (长整数 )- 也叫长,是无限大小的整数,写法与整数一样,后面是大写或小写的L。

  3. float(浮点数实数)--也叫浮点数,代表实数,书写时用小数点来划分整数和小数部分。浮点数也可以采用科学符号,用E或e表示10的幂(2.5e2=2.5×102=250)。

  4. 复数(复数)--是a+bJ的形式,其中a和b是浮点数,J(或j)代表-1的平方根(这是一个虚数)。数的实部是a,虚部是b。复数在Python编程中使用不多。

用不同的基数将Python字符串转换为Int

在从一种格式转换为另一种格式时,你必须牢记许多因素和基数。例如,如果 你将十进制整数表示为一个字符串,并需要将Python字符串转换为一个int,你将字符串传递给int()方法 ,它返回一个十进制整数。

如果你正在寻找将Python字符串转换为int和将int转换为字符串的解决方案,你会在这篇文章中找到答案。

在本教程结束时,你会明白。

  1. 如何将Python字符串转换为int。
  2. 如何在不同的基础上将Python str解析为int。
  3. 如何用逗号将Python str转换为int。

Python定义了类型转换函数,将一种数据类型转换为另一种,在日常和竞争性编程中很有用。

我们可以使用类型 函数来获得任何变量的数据类型。

请看下面的例子。

# app.py

amp = '123'
print(type(amp))

eli = 'The Computer Guy'
print(type(eli))

num = 1234
print(type(num))

ser = [1, 2, 4]
print(type(ser))

dict = {1: 'Android', 2: 'iOS', 3: 'Symbian'}
print(type(dict))

我们把不同类型的变量,打印在Python控制台中。请看下面的输出。

How To Convert Python String to Int

像**str()**内置一样,Python也提供了一个方便的内置,它接收一个String对象作为参数,并返回相应的整数对象。

如果你想把字符串中表示的数字转换为int,你必须使用**int()**函数。请看下面的例子。

# app.py

amp = '123'
print(type(amp))

convertedInt = int(amp)
print(type(convertedInt))
print(convertedInt)

请看下面的输出。

How To Convert Python String to Int and Int to String

我们已经在Python中把字符串转换为整数。

整数是整数。换句话说,它们没有小数的成分。在Python中你可以使用两种数据类型来存储整数:int和str。

这些类型为在不同情况下处理整数提供了灵活性。

在本教程中,你将学习如何将一个Python字符串转换为int。你还将学习如何将一个int转换为一个字符串。

所以,这与Python字符串到int是一样的。

#app.py

eleven = "11"
print(eleven)
# Converting string to number
millie = int(eleven)
print(millie)

请看输出。

➜  pyt python3 app.py
11
11
➜  pyt

从不同的基数将字符串转换为int

字符串可以通过int()和float()方法转化为数字。如果你的String没有小数位,你可能想用int()方法转换整数

如果你想转换为 int的字符串 属于 基数10 以外的 其他数基 ,你可以为该转换指定该基数。

但是你需要记住的一点是,输出的整数总是以10为基数。

另一件你需要记住的事情是,一个给定的基数必须在2到32之间。请看下面的例子。

# app.py

amp = '123'
print(type(amp))

convertedInt = int(amp)
print(type(convertedInt))
print(convertedInt)

convertedInt8 = int(amp, base=8)
print(type(convertedInt))
print(convertedInt)

convertedInt16 = int(amp, base=16)
print(type(convertedInt16))
print(convertedInt16)

convertedInt32 = int(amp, base=32)
print(type(convertedInt32))
print(convertedInt32)

请看下面的输出。

Converting String to int from different base

当从String转换到int时,你可能会得到一个ValueError 异常。如果你要转换的String不代表任何数字,就会出现ValueError异常。

如果你要将十六进制的数字转换为整数,你将 不必 在 int() 函数 中 传递参数 base=16

如果任何数字不属于十进制数字系统,它将引发 ValueError 异常。

你应该记住一些特殊情况。

  1. 作为参数,浮点数(一个带有小数部分的整数)将返回四舍五入到最接近的整数的浮点数。例如:**print(int(11.21))**将打印7。另外,print(int("11.21"))会导致错误,因为字符串是一个无效的参数,不能转换为整数。

    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: invalid literal for int() with base 10: '11.21'
    
  2. 另外,任何以字为单位的整数,如果作为参数给出,将返回与上述相同的错误:**print(int("eleven"))**将提供如下错误。

    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: invalid literal for int() with base 10: 'eleven'
    

int()函数默认假设字符串参数代表十进制的整数。但是,如果你把十六进制的String传给int()方法,那么你会看到ValueError。

请看下面的代码。

# app.py

v1 = "0x11E"

print('The value of v1 is: ', v1)
print('The data type of v1 is:', type(v1))

conv = int(v1)
print(conv)

输出

python3 app.py
The value of v1 is:  0x11E
The data type of v1 is: <class 'str'>
Traceback (most recent call last):
  File "app.py", line 6, in <module>
    conv = int(v1)
ValueError: invalid literal for int() with base 10: '0x11E'

错误信息表明String不是一个有效的十进制整数。

必须认识到将String传给**int()**的两种失败结果的区别。

  1. 语法错误。int()函数不知道如何使用提供的基数(默认为10)解析String时,将抛出一个ValueError
  2. **逻辑错误。**int()函数确实知道如何解析一个字符串,但不是你所期望的方式。

在Python中将int解析为字符串

我们可以使用内置的**str()**函数来解析Python中的int到String,将一个整数转换为String。

解析与编程中的转换是一样的。

请看下面的例子。

# app.py

hexValue = 0x2f22
print(hexValue)
print(type(hexValue))
hexValue = str(hexValue)
print(hexValue)
print(type(hexValue))

请看下面的输出。

Convert Python Int to String Tutorial

请看另一个Python中Int到String转换的例子。

# app.py

digit = 1921
print(digit)
print(type(digit))
digit = str(digit)
print(digit)
print(type(digit))

Convert Python Int to String Tutorial Example

Python字符串到浮点数

要在Python中把一个字符串转换为浮点数,请使用float()函数。float()是一个内置的Python方法,它可以将字符串值胁迫成一个整数。你可以使用一个浮动类来将十进制的String转换为浮动数。

请看下面的例子来演示。

# app.py

eleven = '11.21'
hopper = 19.21

el = float(eleven) + hopper
print ("The value of el = ",el)

请看下面的输出。

➜ pyt python3 app.py
The value of el = 30.42
➜ pyt

更多信息,请查看 在Python中将String转换 为Float的例子。

将列表中的字符串数字转换为整数

如果你打算转换Python 列表中的字符串数字,那么将这些字符串转换为 int 的一种方法是使用列表理解。如下面的例子所示, 将创建一个 新的 list,在每次迭代中使用int

# app.py

str_list = ['11', '19', '21']
int_list = [int(a) for a in str_list]
print (int_list)

请看下面的输出。

➜  pyt python3 app.py
[11, 19, 21]
➜  pyt

将字符串转换为带逗号的int

那么带有逗号的字符串数字呢,比如 "11,000,000"。如果你试图用int或float来转换这个字符串,会因为逗号而产生错误。

解决上述错误的方法是通过导入locale。

import locale

现在,你可以使用美国的locale设置,如下所示。

locale.setlocale( locale.LC_ALL, "en_US.UTF-8")

然而,这可能会在不同的地方引起问题。

因此,另一个解决方案是将逗号替换为空。例如,请看下面的代码。

# app.py

elevenmillion = '11,000,000'
eleven = int(elevenmillion.replace(',',''))

print ("The integer value", eleven)

请看下面的输出。

➜  pyt python3 app.py
The integer value 11000000
➜  pyt

将Python中的int转换为字符串

要将Python中的整数转换为字符串,可以使用内置的str()函数。str()是一个内置的Python函数,它接收任何数据类型并将其转换为字符串,包括整数,并返回一个字符串。

请看下面的代码。

# app.py

v1 = 1
v2 = 11

print('The value of v1 is: ', v1)
print('The data type of v1 is:', type(v1))
print('The value of v2 is: ', v2)
print('The value of v2 is: ', type(v2))

输出

python3 app.py
The value of v1 is:  1
The data type of v1 is: <class 'int'>
The value of v2 is:  11
The value of v2 is:  <class 'int'>

如果你想获得任何数值的数据类型,请使用type()函数。

总结

使用int()和float()函数可以将字符串 转换为数字。如果字符串没有小数位,可以使用int()方法转换整数 。 **str()**函数用于将整数转换为String。

ord()函数将字符转换为整数。

hex()函数将一个整数 转换为 十六进制的字符串

oct()函数将一个整数 转换为 八进制字符串

本教程就到此为止。