6. 图形打印

利用嵌套循环和字符串乘法,可以打印各种图形。这是练习循环控制的经典方式。

直角三角形

python
# 输出直角三角形
# *
# ***
# *****
# *******
# *********
n = int(input("请输入直角三角形的行数:"))
for i in range(1, 2 * n, 2):  # 1, 3, 5, 7, ...
    print("*" * i)

📝 样例输入:

输入
5

▶ 运行结果:

输出
请输入直角三角形的行数:5
*
***
*****
*******
*********

等腰三角形

python
#     *
#    ***
#   *****
#  *******
# *********
# 利用 f-string 居中对齐
n = int(input("请输入三角形的行数:"))
for i in range(1, n + 1):
    print(f"{(i * 2 - 1) * '*':^{2 * n - 1}}")

📝 样例输入:

输入
5

▶ 运行结果:

输出
请输入三角形的行数:5
    *    
   ***   
  *****  
 ******* 
*********
💡 f-string 居中对齐

f"{'text':^{width}}" 表示将文本在指定宽度内居中。这是 Python 3.6+ 的简洁写法,替代了传统的嵌套循环 + 空格打印。

菱形

python
#   *
#  ***
# *****
#  ***
#   *
# 上半部分 + 下半部分
n = int(input("请输入菱形的行数(奇数):"))
n = n // 2 + 1  # 取上半部分行数
# 上半部分(递增)
for i in range(1, n + 1):
    print(f"{(i * 2 - 1) * '*':^{2 * n - 1}}")
# 下半部分(递减)
for j in range(n - 1, 0, -1):
    print(f"{(j * 2 - 1) * '*':^{2 * n - 1}}")

📝 样例输入:

输入
5

▶ 运行结果:

输出
请输入菱形的行数(奇数):5
  *  
 *** 
*****
 *** 
  *