Python 实现一个字符串到整数的转换(类似 int() 函数)
在 Python 中,我们可以通过自定义函数来实现字符串到整数的转换,类似于内置的 int()
函数。这个函数将处理字符串中的数字字符,并忽略前导空格和符号(+ 或 -),然后将这些字符转换为整数。
实例
def str_to_int(s):
s = s.strip() # 去除前导和尾随空格
if not s:
return 0
sign = 1
if s[0] == '-' or s[0] == '+':
if s[0] == '-':
sign = -1
s = s[1:] # 去除符号
result = 0
for char in s:
if not char.isdigit():
break
result = result * 10 + (ord(char) - ord('0'))
return sign * result
# 测试
print(str_to_int(" 123")) # 123
print(str_to_int(" -456")) # -456
print(str_to_int(" +789")) # 789
print(str_to_int(" 12a34")) # 12
s = s.strip() # 去除前导和尾随空格
if not s:
return 0
sign = 1
if s[0] == '-' or s[0] == '+':
if s[0] == '-':
sign = -1
s = s[1:] # 去除符号
result = 0
for char in s:
if not char.isdigit():
break
result = result * 10 + (ord(char) - ord('0'))
return sign * result
# 测试
print(str_to_int(" 123")) # 123
print(str_to_int(" -456")) # -456
print(str_to_int(" +789")) # 789
print(str_to_int(" 12a34")) # 12
代码解析:
s.strip()
:去除字符串s
的前导和尾随空格。if not s:
:如果字符串为空,则返回 0。sign = 1
:初始化符号为 1(正数)。if s[0] == '-' or s[0] == '+':
:检查字符串的第一个字符是否为符号(+ 或 -)。s = s[1:]
:如果存在符号,则去除符号字符。for char in s:
:遍历字符串中的每个字符。if not char.isdigit():
:如果字符不是数字,则停止转换。result = result * 10 + (ord(char) - ord('0'))
:将字符转换为数字并累加到结果中。return sign * result
:返回带符号的整数结果。
输出结果:
123 -456 789 12
点我分享笔记