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

如何用嵌套for循环实现6×7网格打印并限制数值到n+41?

修正你的Python网格打印程序

你的代码出现无限循环的原因是不必要的三层嵌套循环,并且在循环中修改了输入的n变量,导致循环逻辑完全失控:

  • 外层for r in range(6)本应控制6行,但你额外嵌套了for c in range(7)和最内层的for i in range(n, n+7),这会让每行被重复打印7次,同时n持续自增永远停不下来。
  • 你不需要修改原始的n值,应该通过行号和列号计算每个位置的数值。

下面是符合要求的修正代码,使用嵌套for循环实现6×7网格打印:

n = int(input("Enter a number between -6 and 2:\n"))
# 输入验证:确保n在指定范围内
if -6 < n < 2:
    # 外层循环控制行数(共6行)
    for row in range(6):
        # 内层循环控制每行的7个数字
        for col in range(7):
            # 计算当前位置的数值:起始n + 行偏移(每行7个) + 列偏移
            current_num = n + row * 7 + col
            print(current_num, end=" ")
        # 每行结束后换行
        print()
else:
    print("Error: Number must be between -6 and 2.")

代码说明:

  • 用int()替代eval()更安全,避免执行恶意输入
  • 外层row循环遍历0到5(共6行),内层col循环遍历0到6(共7列)
  • 通过row *7计算当前行的起始偏移,加上col得到当前位置的准确数值,全程不修改原始的n
  • 增加了输入不合法时的提示信息

测试输入-2时,输出和你期望的完全一致:

Enter a number between -6 and 2:
-2
-2 -1 0 1 2 3 4 
5 6 7 8 9 10 11 
12 13 14 15 16 17 18 
19 20 21 22 23 24 25 
26 27 28 29 30 31 32 
33 34 35 36 37 38 39 

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 11:42:47