如何用Python打印正三角形(非左右三角)形式的数字平方图案?
解决正三角形数字平方图案的嵌套循环实现
先明确目标输出图案:
1 4 916 25 36
49 64 81 100
实现思路
- 总行数为4,每行的数字个数等于当前行数(第1行1个,第2行2个,以此类推)
- 数字从1开始连续递增,每个数字取平方
- 通过嵌套循环控制行数和每行的数字个数,利用字符串格式化保证数字对齐,前导空格实现右对齐效果
代码实现(Python)
rows = 4 current_num = 1 for i in range(1, rows + 1): # 打印前导空格,控制整体右对齐 print(" " * (rows - i) * 2, end="") # 打印当前行的数字 for j in range(i): square = current_num ** 2 # 格式化数字占3位,适配多位数对齐,最后一个数字后直接换行 if j == i - 1: print(f"{square:3d}") else: print(f"{square:3d}", end=" ") current_num += 1
代码解释
- 外层循环控制行数,从1到4遍历每一行。
- 前导空格计算:
(rows - i) * 2确保每行的起始位置逐渐左移,形成正三角形的右对齐效果。 - 内层循环控制每行的数字个数,等于当前行数,依次计算连续整数的平方。
f"{square:3d}"格式化每个数字为3位宽度,个位数自动补前导空格,保证所有数字对齐整齐。- 最后一个数字后直接换行,避免行尾出现多余空格。
运行代码后,输出结果与目标图案完全一致。
内容的提问来源于stack exchange,提问作者AbdulmateenChitrali
相关产品推荐
相关产品推荐

