本篇文章将从多个方面对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码的转换、正则表达式对数字进行过滤,以及异常处理机制。可以根据实际情况选择使用不同的方法。