python实例

在 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