You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python去除数字开头的0?覆盖字符串及整数场景

去除数字前导零的Python实现

针对你需要去除数字(字符串或整数类型)前导零的需求,以下是实用的实现方案:

核心说明

Python的整数类型本身不允许存在前导零(除了整数0),直接写000386489会触发语法错误。所以所谓的“整数开头带零”场景,实际只需直接返回整数即可(因为整数本身无多余前导零),核心处理逻辑集中在字符串类型上。

两种实用方案

方案1:返回字符串类型

适合需要保留字符串格式的场景:

def remove_leading_zeros(num):
    if isinstance(num, int):
        return str(num)  # 转字符串确保格式统一
    elif isinstance(num, str):
        # 去除所有前导零,若原字符串全为0则返回"0"
        stripped = num.lstrip('0')
        return stripped if stripped else '0'
    raise TypeError("仅支持整数或纯数字字符串输入")

方案2:返回整数类型

适合需要数值类型的场景:

def remove_leading_zeros(num):
    if isinstance(num, int):
        return num
    elif isinstance(num, str):
        stripped = num.lstrip('0')
        # 全零字符串转成整数0
        return int(stripped) if stripped else 0
    raise TypeError("仅支持整数或纯数字字符串输入")

测试案例

字符串输入测试

# 方案1测试
print(remove_leading_zeros("0000386489"))  # 输出: '386489'
print(remove_leading_zeros("0000"))       # 输出: '0'
print(remove_leading_zeros("01230"))      # 输出: '1230'

# 方案2测试
print(remove_leading_zeros("0000386489"))  # 输出: 386489
print(remove_leading_zeros("0000"))       # 输出: 0

整数输入测试

# 方案1测试
print(remove_leading_zeros(386489))  # 输出: '386489'
print(remove_leading_zeros(0))       # 输出: '0'

# 方案2测试
print(remove_leading_zeros(386489))  # 输出: 386489
print(remove_leading_zeros(0))       # 输出: 0

注意事项

  • 如果输入的字符串包含非数字字符,上述函数会报错,若需要处理这类情况,可提前用str.isdigit()做校验。
  • 不要尝试输入000386489这类带前导零的整数,Python会直接触发语法错误。

内容的提问来源于stack exchange,提问作者Samir ZAABLI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 11:42:50