📅  最后修改于: 2020-07-23 04:49:41             🧑  作者: Mango
在Python中,可以使用以下方法将字符串转换为整数:
方法1: 使用内置的int()函数:
如果您的字符串包含一个十进制整数,并且希望将其转换为int,则将字符串传递给int()函数,它将把您的字符串转换为等效的十进制整数。
语法:int(string, base)
参数:
string:由1、0或十六进制,八进制数字等组成。
base :(整数值)数字的底数。
返回:返回一个整数值,该整数值与给定基数中的string等效。
代码:
# 用十进制值初始化字符串
string = "100"
# 显示数据类型
print(type(string))
# 将字符串转换为int
string_to_int = int(string)
# 显示数据类型
print(type(string_to_int))
输出:
默认情况下,int()期望字符串参数表示一个十进制整数。假定在任何情况下,您都将一个十六进制字符串传递给int(),则它将显示ValueError。在这种情况下,您可以在字符串中指定数字的底数。
码:
# 用十六进制值初始化字符串
string = "0x12F"
# 显示数据类型
print(type(string))
# 将十六进制字符串转换为int
string_to_int = int(string,
base=16)
# 显示数据类型
print(type(string_to_int))
输出:
方法2:使用用户定义的函数:
我们还可以通过创建自己的用户定义函数将字符串转换为int。
方法:
码:
# 用户定义的函数,用于将字符串转换为整数def string_to_int(input_string):
output_int = 0
# 检查数字是否包含任何负号,即它是否为负数。如果它包含在减号的第一个位置,我们将从包含数字的第二个位置开始转换.
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)):
# 计算各个数字的位数
place_value = 10**(len(input_string) - (i+1))
# 计算数字值ord()函数给出Ascii值
digit_value = ord(input_string[i]) - ord('0')
# 计算最终整数值
output_int += place_value * digit_value
# 如果check_negative为true,则将最终整数值乘以-1
if check_negative :
return -1 * output_int
else:
return output_int
# 驱动程式码
if __name__ == "__main__" :
string = "554"
# 函数调用
x = string_to_int(string)
# 显示数据类型
print(type(x))
string = "123"
# 显示数据类型
print(type(string_to_int(string)))
string = "-123"
# 显示数据类型
print(type(string_to_int(string)))
输出: