如何用Python避免尾随空格并生成理想的8×8网格?
修正方案:生成无尾随空格的8×8网格
你的代码问题出在每个元素后都强制添加了空格,包括每行的最后一个元素,所以会留下尾随空格。下面给两个适合初学者的简单修正方法:
方法1:先收集每行元素再拼接(直观易懂)
先把每行的所有元素存到一个列表里,再用空格把列表元素连接成字符串后打印,这样只会在元素之间加空格,不会出现末尾空格:
n = 8 for i in range(n): row_elements = [] for j in range(n): z = i * n + j # 给个位数数字补前导空格,保证对齐 if z < 10: row_elements.append(f" {z}") else: row_elements.append(f"{z}") # 用空格拼接所有元素,直接打印整行 print(' '.join(row_elements))
方法2:用格式化宽度简化代码(更简洁)
可以利用Python格式化字符串的宽度控制,自动给个位数补前导空格,省去if判断:
n = 8 for i in range(n): # 用列表推导式生成每行的格式化元素 row_elements = [f"{i * n + j:2d}" for j in range(n)] print(' '.join(row_elements))
这里{z:2d}的意思是:把整数z格式化为宽度为2的字符串,如果是个位数,自动在前面补空格,和你原来的if判断效果完全一样,但代码更短。
内容的提问来源于stack exchange,提问作者Frankline Misango
相关产品推荐
相关产品推荐

