您的位置:

用一行代码将字符串转为整数的Python函数

一、Python内置函数int()实现字符串转整数


def str_to_int(num_str):    # 定义函数,参数为字符串类型
    return int(num_str)    # 使用Python内置函数int()将字符串转成整数并返回

Python内置函数int()可以将字符串按照给定的进制转换成整数,如果没有指定进制,默认按十进制进行转换。因此只要将字符串作为参数传入int()函数,即可轻松实现字符串转成整数。

二、使用eval()函数将字符串转换成整数


def str_to_int(num_str):
    return eval(num_str)

Python内置函数eval()可以将字符串转成Python表达式并执行,返回结果。因此只要将字符串作为参数传入eval()函数,即可实现字符串转成整数。不过要注意,eval()会执行字符串中的任意代码,有一定的安全风险,在使用时需要注意。

三、采用lambda表达式实现字符串转整数功能


str_to_int_lambda = lambda num_str: int(num_str)

这里采用lambda表达式直接实现字符串转整数的功能,无需定义函数。将字符串作为参数传给lambda表达式,内部实现调用Python内置函数int(),再将转换后的整数作为函数值返回。lambda表达式可以有效简化代码,简单明了。

四、绕路实现字符串转整数功能


def str_to_int(num_str):
    number = 0
    for ele in num_str:
        number = number * 10 + ord(ele) - ord('0')    # 模拟数字进位
    return number

这种方法比较绕路,需要使用循环来逐个遍历字符串中的每一个字符,并模拟计算出数字的过程,逐位加和。具体地,使用ord()函数将每个字符转换成ASCII码,然后减去字符‘0’的ASCII码,再进行逐位加和,最终得到字符串对应的整数值。

五、处理字符串中的正负号并转成整数


def str_to_int(num_str):
    start = 0
    sign = 1
    if num_str[0] == '-':
        start = 1
        sign = -1
    elif num_str[0] == '+':
        start = 1
    number = 0
    for i in range(start, len(num_str)):
        digit = ord(num_str[i]) - ord('0')
        number = number * 10 + digit
    return sign * number

有时候字符串中会带有正负号,这时候需要对字符串进行一定的处理,以防在转换成整数时发生错误。本方法给出了处理字符串中正负号的方法,并最终将结果转换成整数返回。该方法需要使用到Python的切片和循环功能,代码相对较长。

六、结语

以上就是用Python实现字符串转整数的6种方法。这些代码虽然实现的功能相同,但是代码实现方式和思路却各不相同,不同的方法适用场景不同,大家可以根据自己的实际需求选择最适合自己的方法来实现字符串转整数。