如何在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
相关产品推荐
相关产品推荐

