具体效果:
完整代码:
import random def print_christmas_tree(height): # 打印圣诞树的顶部 for i in range(height): # 打印空格,使树居中 for j in range(height - i - 1): print(" ", end="") # 打印星号,构成树的枝干,并添加随机装饰(这里用"."表示装饰) for k in range(2 * i + 1): if k == 0 or k == 2 * i: # 树的两边始终为星号 print("*", end="") else: # 中间部分随机添加装饰,使用random.choice()实现真正的随机 decoration = random.choice(["*", "."]) print(decoration, end="") # 换行到下一层 print() # 打印空行分隔树的顶部和树干 print("\n" * (height // 5)) # 打印树干 trunk_height = height // 3 # 树干的高度是树高的三分之一 trunk_width = (height // 2) + 1 # 使树干更粗壮,宽度为树高的一半加1(保证是奇数) if trunk_width % 2 == 0: trunk_width += 1 for i in range(trunk_height): # 打印空格,使树干居中 for j in range((2 * height - trunk_width) // 2): print(" ", end="") # 打印树干,并用"|"表示 for k in range(trunk_width): print("|", end="") # 换行 print() # 打印空行分隔树干和树顶的星星 print("\n" * (height // 4)) # 打印树顶的星星,更加居中 star_position = height // 2 - 1 # 星星的位置,根据树的高度计算 for i in range(star_position): # 打印空格使星星居中 print(" ", end="") print("*") # 打印星星 print("\n" * (height - star_position - 1)) # 打印空行,使输出更加整洁 # 设置随机种子(可选),以便每次运行程序时得到相同的随机装饰效果
random.seed(42) # 调用函数,打印高度为15的圣诞树
print_christmas_tree(15)