一个整数可以用不同的数据类型来存储。例如,代表整数的两种可能的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 '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不同的数字数据类型
-
int (有符号的整数)- 它们通常被称为ints或integers,是没有小数点的正负整数。
-
long (长整数 )- 也叫长,是无限大小的整数,写法与整数一样,后面是大写或小写的L。
-
float(浮点数实数)--也叫浮点数,代表实数,书写时用小数点来划分整数和小数部分。浮点数也可以采用科学符号,用E或e表示10的幂(2.5e2=2.5×102=250)。
-
复数(复数)--是a+bJ的形式,其中a和b是浮点数,J(或j)代表-1的平方根(这是一个虚数)。数的实部是a,虚部是b。复数在Python编程中使用不多。
用不同的基数将Python字符串转换为Int
在从一种格式转换为另一种格式时,你必须牢记许多因素和基数。例如,如果 你将十进制整数表示为一个字符串,并需要将Python字符串转换为一个int,你将字符串传递给int()方法 ,它返回一个十进制整数。
如果你正在寻找将Python字符串转换为int和将int转换为字符串的解决方案,你会在这篇文章中找到答案。
在本教程结束时,你会明白。
- 如何将Python字符串转换为int。
- 如何在不同的基础上将Python str解析为int。
- 如何用逗号将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控制台中。请看下面的输出。
像**str()**内置一样,Python也提供了一个方便的内置,它接收一个String对象作为参数,并返回相应的整数对象。
如果你想把字符串中表示的数字转换为int,你必须使用**int()**函数。请看下面的例子。
# app.py
amp = '123'
print(type(amp))
convertedInt = int(amp)
print(type(convertedInt))
print(convertedInt)
请看下面的输出。
我们已经在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)
请看下面的输出。
当从String转换到int时,你可能会得到一个ValueError 异常。如果你要转换的String不代表任何数字,就会出现ValueError异常。
如果你要将十六进制的数字转换为整数,你将 不必 在 int() 函数 中 传递参数 base=16。
如果任何数字不属于十进制数字系统,它将引发 ValueError 异常。
你应该记住一些特殊情况。
-
作为参数,浮点数(一个带有小数部分的整数)将返回四舍五入到最接近的整数的浮点数。例如:**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'
-
另外,任何以字为单位的整数,如果作为参数给出,将返回与上述相同的错误:**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()**的两种失败结果的区别。
- 语法错误。当int()函数不知道如何使用提供的基数(默认为10)解析String时,将抛出一个ValueError。
- **逻辑错误。**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))
请看下面的输出。
请看另一个Python中Int到String转换的例子。
# app.py
digit = 1921
print(digit)
print(type(digit))
digit = str(digit)
print(digit)
print(type(digit))
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()函数将一个整数 转换为 八进制字符串。
本教程就到此为止。