Python 实现一个字符串到整数的转换(类似 int() 函数)

Document 对象参考手册 Python3 实例

在 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

代码解析:

  1. s.strip():去除字符串 s 的前导和尾随空格。
  2. if not s::如果字符串为空,则返回 0。
  3. sign = 1:初始化符号为 1(正数)。
  4. if s[0] == '-' or s[0] == '+'::检查字符串的第一个字符是否为符号(+ 或 -)。
  5. s = s[1:]:如果存在符号,则去除符号字符。
  6. for char in s::遍历字符串中的每个字符。
  7. if not char.isdigit()::如果字符不是数字,则停止转换。
  8. result = result * 10 + (ord(char) - ord('0')):将字符转换为数字并累加到结果中。
  9. return sign * result:返回带符号的整数结果。

输出结果:

123
-456
789
12

Document 对象参考手册 Python3 实例