如何用Python实现可变高宽的圣诞树输出?
Python 实现指定样式圣诞树的方案
思路拆解
这个圣诞树可以拆成三个简单部分,用Python基础的循环和字符串拼接就能实现:
- 树顶:2行窄星号行,每行星数递增2个
- 树身:2行宽星号行,延续递增规律,和树顶衔接成完整树冠
- 树干:3行居中的竖线,模拟树干
实现代码
# 设定圣诞树最宽处的星数(对应目标样式) max_stars = 7 # 打印树顶 for i in range(2): star_line = '*' * (2 * i + 1) # 计算前置空格,让星号行居中 space_line = ' ' * ((max_stars - len(star_line)) // 2) print(space_line + star_line) # 打印树身 for i in range(2, 4): star_line = '*' * (2 * i + 1) space_line = ' ' * ((max_stars - len(star_line)) // 2) print(space_line + star_line) # 打印树干 trunk_space = ' ' * ((max_stars - 1) // 2) for _ in range(3): print(trunk_space + '|')
代码说明
- 居中逻辑:通过计算总宽度与当前行星数的差值,取一半作为前置空格,保证每行内容居中对齐
- 星数规律:每行星数用
2*i+1生成,能实现每行比上一行多2个星的递增效果 - 可扩展性:如果想调整圣诞树大小,只需要修改
max_stars的值;想加层数,直接修改循环的范围即可
内容的提问来源于stack exchange,提问作者wayne
相关产品推荐
相关产品推荐

