在 Python 中,可以使用以下方法将字符串转换为整数:
方法一: 使用 内置 int() 函数:
如果您的字符串包含十进制整数并且您希望将其转换为 int,在这种情况下,请将您的字符串传递给 int() 函数,它会将您的字符串转换为等效的十进制整数。
用法:int(string, base)
参数:该函数采用以下参数:
- string:由 1、0 或十六进制、八进制数字等组成。
- base:(整数值)数字的基数。
返回值:返回一个整数值,它是等价的
给定基数中的字符串。
码:
Python3
# Initialising a string
# with decimal value
string = "100"
# Show the Data type
print(type(string))
# Converting string into int
string_to_int = int(string)
# Show the Data type
print(type(string_to_int))
输出:
<class 'str'> <class 'int'>
默认情况下,int() 期望字符串参数表示十进制整数。假设在任何情况下,您将一个十六进制字符串传递给 int(),那么它将显示 ValueError。在这种情况下,您可以指定字符串中数字的基数。
码:
Python3
# Initialising a string
# with hexadecimal value
string = "0x12F"
# Show the Data type
print(type(string))
# Converting hexadecimal
# string into int
string_to_int = int(string,
base=16)
# Show the Data type
print(type(string_to_int))
输出:
<class 'str'> <class 'int'>
方法二:使用自定义函数:
我们还可以通过创建自己的用户定义函数将字符串转换为 int。
方法:
- 我们将检查该数字是否有任何 “-” 符号,因为如果它是负数,它将包含 “-” 符号。如果它包含 “-” 符号,那么我们将从包含数字的第二个位置开始转换。
- 任意数,假设321,可以写成结构:10**2 * 3 + 10**1*2 + 10**0*1
- 同样,我们使用 ord(argument) 拆分每个输入数字,ord(‘0’) 将返回 48,ord(‘1’) 返回 49,依此类推。
- 这里的逻辑是 ord(‘1’) - ord(‘0) = 1, ord(‘2’) - ord(‘0’) = 2 等等,这为我们提供了从给定输入数字中获取的有效数字。
- 最后,我们从函数中得到的结果是一个整数,我们从给定的字符串转换过来。
码:
Python3
# User-defined function to
# convert a string into integer
def string_to_int(input_string):
output_int = 0
# Check if the number contains
# any minus sign or not,
# i.e. is it a negative number or not.
# If it contains in the first
# position in a minus sign,
# we start our conversion
# from the second position which
# contains numbers.
if input_string[0] == '-' :
starting_idx = 1
check_negative = True
else:
starting_idx = 0
check_negative = False
for i in range(starting_idx, len(input_string)):
# calculate the place value for
# the respective digit
place_value = 10**(len(input_string) - (i+1))
# calculate digit value
# ord() function gives Ascii value
digit_value = ord(input_string[i]) - ord('0')
# calculating the final integer value
output_int += place_value * digit_value
# if check_negative is true
# then final integer value
# is multiplied by -1
if check_negative:
return -1 * output_int
else:
return output_int
# Driver code
if __name__ == "__main__" :
string = "554"
# function call
x = string_to_int(string)
# Show the Data type
print(type(x))
string = "123"
# Show the Data type
print(type(string_to_int(string)))
string = "-123"
# Show the Data type
print(type(string_to_int(string)))
输出:
<class 'int'> <class 'int'> <class 'int'>
相关用法
- Python string转integer用法及代码示例
- Python integer转string用法及代码示例
- Pandas DataFrame String转Integer用法及代码示例
- Python Tuple转integer用法及代码示例
- Python DateTime转integer用法及代码示例
- Python integer转roman用法及代码示例
- Pandas DataFrame Integer转Datetime用法及代码示例
注:本文由纯净天空筛选整理自ankthon大神的英文原创作品 How to convert string to integer in Python?。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。