Python打印直角三角形需控制星号数量与空格数:左下用for i in range(1,n+1)打印""i;左上用range(n,0,-1);右下每行打印" "(n-i)+""*i(i从1到n);右上同理i从n到1;while循环可辅助理解逐行构建过程。

用Python打印直角三角形,核心是控制每行输出的星号(*)数量,并利用循环逐行递增或递减。最常见的是左对齐、直角在左下或左上的等腰直角三角形。
左下直角三角形(行数递增)
第1行1个*,第2行2个*……第n行n个*,适合用for循环配合range(1, n+1)实现。
- 用 for i in range(1, n + 1) 控制行数
- 每行打印 "*" * i 即可
- 例如 n = 5:
print("*" * i)
左上直角三角形(行数递减)
第1行n个*,第2行n−1个*……第n行1个*,只需把range改成从n递减到1。
- 用 for i in range(n, 0, −1)
- 每行仍用 "*" * i
- n = 5时会输出5、4、3、2、1个星号
右对齐直角三角形(空格+星号)
想让直角在右上或右下,需在星号前补空格。关键:每行总宽度固定为n,星号数为i,则空格数为n−i。
立即学习“Python免费学习笔记(深入)”;
- 右下直角:i从1到n,每行 " " * (n - i) + "*" * i
- 右上直角:i从n到1,同理补空格
- 注意:用空格对齐时,确保终端字体为等宽,否则可能错位
用while循环实现(更直观理解流程)
适合初学者理解“逐行构建”的逻辑:
- 设 i = 1,循环条件 i
- 每次打印 "*" * i,然后 i += 1
- 比for稍冗长,但步骤清晰,便于调试
基本上就这些。关键是掌握循环变量与符号数量的对应关系,再微调空格就能变出不同朝向。不复杂但容易忽略换行和空格细节。











