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

Python编写乘法表代码运行时持续打印输入数字,该如何修复?

Python乘法表程序修复方案

根因分析

代码的核心问题是while循环内没有更新循环变量i的值,导致i始终为1,永远满足循环判定条件进入死循环,持续打印1 * 输入数字的结果。
除此之外还存在几个可优化的问题:

  • 用Python内置标识符range作为自定义变量名,会覆盖内置range()函数的功能,后续调用会出错,建议替换为其他变量名如calc_range
  • 导入了math、threading两个未使用的冗余依赖,可直接删除
  • 没有做输入合法性校验,用户输入非数字内容时会直接抛出类型转换异常
  • 原循环判定条件为i < int(range),如果用户输入计算范围为5,只会输出到4的计算结果,不符合乘法表常规使用习惯,建议调整为小于等于判定

修复后代码

# Make a table printer
i = 1
num = input("请输入要生成乘法表的目标数字:")
calc_range = input("请输入计算范围最大值:")

# 输入合法性校验
try:
    num = int(num)
    calc_range = int(calc_range)
except ValueError:
    print("输入内容必须为整数,请重新运行程序")
    exit()

while i <= calc_range:
    print(f"{i} × {num} = {i * num}")
    # 循环变量自增,避免死循环
    i += 1

可选简化实现

可以直接用for循环实现,不需要手动维护循环变量,逻辑更简洁:

# Make a table printer
num = input("请输入要生成乘法表的目标数字:")
calc_range = input("请输入计算范围最大值:")

try:
    num = int(num)
    calc_range = int(calc_range)
except ValueError:
    print("输入内容必须为整数,请重新运行程序")
    exit()

for i in range(1, calc_range + 1):
    print(f"{i} × {num} = {i * num}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:36:04