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

如何在Python中将多位数拆分为短位数段?8位数拆4位数求助

解决8位数拆分为4位分段的问题

你的代码存在两个关键问题:

  • 语法错误:a [i*4: (i + 1) * 4]中变量a与切片符号之间多了空格,正确写法应为a[i*4:(i+1)*4]
  • 类型错误:如果输入的是数字类型的8位数,数字本身没有len()方法和切片操作,必须先转换为字符串

修正后的代码(支持数字/字符串输入)

def div4(a, n=4):
    # 将输入转为字符串,兼容数字和字符串类型的8位数
    str_a = str(a)
    # 按每4位拆分,适用于长度为n倍数的输入(这里8位刚好分成2段)
    return [str_a[i*4:(i+1)*4] for i in range(len(str_a)//n)]

测试示例

# 输入数字格式的8位数
print(div4(12345678))  # 输出: ['1234', '5678']
# 输入字符串格式的8位数
print(div4("12345678"))  # 输出: ['1234', '5678']

若需返回数字类型的分段

可以在返回时将字符串转回整数:

def div4(a, n=4):
    str_a = str(a)
    return [int(str_a[i*4:(i+1)*4]) for i in range(len(str_a)//n)]

测试该版本:

print(div4(12345678))  # 输出: [1234, 5678]

内容的提问来源于stack exchange,提问作者Ana Damadaeva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 22:05:43