求助:Python实现输入5时指定数字序列打印的代码调试
数字序列打印代码调试修正
你的代码存在两个核心问题:
- 你设置的
rows = 6,但需求是输入为5时输出5行,行数匹配错误; - 当前的
start_num是全局累加状态,导致后续行的起始数字偏离预期。正确逻辑应为第i行的起始数字等于2 + (i-1),比如第1行起始2,第2行起始3,以此类推。
修正后的代码如下:
rows = 5 # 对应输入为5时的行数 for i in range(1, rows + 1): start_num = 2 + (i - 1) # 按行号计算每行的起始数字 for j in range(i): print(start_num, end=' ') start_num += 1 print()
运行这段代码后,输出与期望完全一致:
2 3 4 4 5 6 5 6 7 8 6 7 8 9 10
你也可以用更简洁的写法实现,无需嵌套循环:
rows = 5 for i in range(1, rows + 1): start = 1 + i nums = range(start, start + i) print(' '.join(map(str, nums)))
该写法直接生成每行的数字序列,输出效果与前者完全相同。
内容的提问来源于stack exchange,提问作者Exclusive
相关产品推荐
相关产品推荐

