首页 > 编程知识 正文

Python字符串变为整数

时间:2023-11-19 07:24:48 阅读:293959 作者:XRSP

本篇文章将从多个方面对Python字符串转为整数进行详细阐述,包括使用内置函数、基于ASCII码的转换、正则表达式以及异常处理。

一、内置函数int()

Python内置了一个函数int(),可以将字符串直接转换为整数。

str = "123"
num = int(str)
print(type(num), num)  #  123

int()函数还能指定转换进制,比如将16进制字符串转换为整数:

hex_str = "0xff"
num = int(hex_str, 16)
print(num)  # 255

二、基于ASCII码的转换

如果要将一个整数字符转换成整数,可以使用ASCII码。

str = "123"
num = 0
for c in str:
    num = num * 10 + ord(c) - ord('0')
print(type(num), num)  #  123

这里用到了ord()函数,它返回对应字符的ASCII值。

三、正则表达式

使用Python内置的re模块,可以很方便地使用正则表达式将字符串转换为整数。

import re
str = "123"
pattern = re.compile(r'^[-+]?[0-9]+$')
match = pattern.match(str)
num = int(match.group())
print(type(num), num)  #  123

这里使用了正则表达式的匹配功能,过滤掉了数字以外的部分。

四、异常处理

除了上面介绍的方法外,还可以使用异常处理机制,如果字符串不能转换为整数就抛出异常。

def str_to_int(str):
    num = 0
    for c in str:
        if c < '0' or c > '9':
            raise Exception("字符串中包含非数字字符")
        num = num * 10 + ord(c) - ord('0')
    return num

try:
    str = "123"
    num = str_to_int(str)
    print(type(num), num)
    
    str = "12a3"
    num = str_to_int(str)  # 抛出异常
except Exception as e:
    print(e)

这里定义了一个自己的转换函数str_to_int(),如果遇到非数字字符就抛出异常。

五、总结

Python中将字符串转换为整数,可以使用内置的int()函数、基于ASCII码的转换、正则表达式对数字进行过滤,以及异常处理机制。可以根据实际情况选择使用不同的方法。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。