使用python画一颗圣诞树

具体效果:

完整代码:

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)

猜你喜欢

转载自blog.csdn.net/beishang_1/article/details/143458081