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

Python数字顺序调整脚本执行提前停止故障排查

故障原因说明

核心故障:缩进错误导致仅输出单条结果

你当前代码的print语句没有写在for循环的缩进块内,程序会先执行完所有for循环迭代,再执行1次print语句,此时打印的是循环结束后最后一次迭代的变量值,自然只能看到1条输出。
原代码的错误缩进示意:

if __name__ == '__main__':
    n = int(input("od čisla:"))
    m = int(input("do čisla:"))
    for i in range(1,m + 1):
        sucet: int = math.floor(sucet_cisel(n*i))
        t=(n*i)*(2)
        x=' ';
# print 完全在for循环外,仅执行1次
print(n,"*",i,"=",n*i,(x*4),"*2","=",t,sep='')

新增数位调整逻辑的关联问题

你提供的数位调整代码目前没有集成到主逻辑中,同时存在两个潜在异常点:

  • 你当前逻辑转换的是循环变量i,如果要调整的是n*i的计算结果,需要将n*i转为字符串处理,而非转换i
  • 如果待处理的数字不足3位,执行pop(-3)会直接抛出IndexError异常,导致程序中断,需要先判断数字长度再执行调整操作

修复后参考代码

import math

def sucet_cisel(number):
    bla: int = 0
    while number > 0:
        xyzpremenna = number % 10
        bla += xyzpremenna
        number = (number - xyzpremenna) / 10
    return bla

def digit_root(n):
    if n == 0: return 0
    return (n - 1) % 9 + 1

if __name__ == '__main__':
    n = int(input("od čisla:"))
    m = int(input("do čisla:"))
    for i in range(1,m + 1):
        sucet: int = math.floor(sucet_cisel(n*i))
        origin_val = n * i
        t = origin_val * 2
        x=' '
        # 集成数位调整逻辑,先判断长度避免报错
        val_str = str(origin_val)
        if len(val_str) >=3:
            val_list = list(val_str)
            digit = val_list.pop(-3)
            new_val = int(''.join(val_list+[digit]))
        else:
            # 不足3位时可按需求自定义处理,这里默认保留原值
            new_val = origin_val
        # print放到循环缩进内,每次迭代都执行
        print(n,"*",i,"=",origin_val,(x*4),"*2","=",t," 调整后值:",new_val, sep='')

内容的提问来源于stack exchange,提问作者Death Book

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:15:08