Python打印数字网格时输出为垂直单列,该问题如何解决?
问题原因
- 代码中
print()的缩进位置错误:当前print()被放在了遍历单行元素的内层循环内,每打印一个数字/点就会触发一次换行,因此所有内容会垂直排列。 - 正确逻辑是整行所有元素打印完成后再执行一次换行,因此要把
print()的缩进调整到和内层for循环同级的位置。
修正后代码
grid = [[5, 3, 0, 0, 7, 0, 0, 0, 0], [6, 0, 0, 1, 9, 5, 0, 0, 0], [0, 9, 8, 0, 0, 0, 0, 6, 0], [8, 0, 0, 0, 6, 0, 0, 0, 3], [4, 0, 0, 8, 0, 3, 0, 0, 1], [7, 0, 0, 0, 2, 0, 0, 0, 6], [0, 6, 0, 0, 0, 0, 2, 8, 0], [0, 0, 0, 4, 1, 9, 0, 0, 5], [0, 0, 0, 0, 8, 0, 0, 7, 9]] def print_grid(): for line in grid: for square in line: if square == 0: print(".", end=" ") else: print(square, end=" ") # 一行所有元素打印完成后再换行 print() print_grid()
运行修正后的代码会正常输出9行9列的网格结构,每个元素横向排列,符合数字块的展示要求。
内容的提问来源于stack exchange,提问作者anonuser
相关产品推荐
相关产品推荐

