一、打印一个简单版圣诞树

实现如下:

#     *
#    ***
#   *****
#  *******
# *********
#     *
#     *
#     *

代码:

for i in range(1,9):# 小于六层时if i<6:# 根据层数变化打印空格for j in range(1,7-i):print(" ",end='')# 根据层数变化打印星号for k in range(1,i*2):print("*",end='')# 大于六层时else:print("     *",end="")print()

详解:

一共八层,最外层循环 [1,9)。

里面分为两种情况,一种是小于6的情况,另一种是大于6的情况。

小于6时,输出树上部分。树上部分,每加一层,空格少一个,星号则是加两个;树干部分就是足够的空格+ 星号

二、打印一个稍复杂的圣诞树

实现如下:

#              *
#             ***
#            *****
#           *******
#             ***
#           *******
#         ***********
#       ***************
#          *********
#       ***************
#    *********************
# ***************************
#             |||
#             |||
#             |||
# ———————————————————————————

代码:

# 打印树上部分
# 外三层
for i in range(1,4):t=3**(i-1)+1# 根据星号个数,算出打印空格的个数for space in range(1, floor(14 - t / 2)):print(" ", end='')# 打印第一行的 * 号for j in range(1,t):print("*",end='')print()# 循环实现剩下三行for k in range(1, 4):# 根据星号个数,算出打印空格的个数for space in range(1,floor(14- (t + (i*2)*k)/2)):print(" ",end='')# 根据第一行,打印剩下行的 * 号for n in range(1, t + (i*2)*k):print("*", end="")print()
# 树干
for i in range(1,4):for j in range(1,14-floor(3/2)):print(" ",end='')print("|||")
# 泥土
for i in range(1,28):print('-',end='')

详解: 

        一步步分解拆开,使得思路清晰。

分三大部分:树上部分、树干、泥土。

树上部分:

先分成三层,每层按顺序打印第一行空格(根据第一行星号数量,找出空格规律)、第一行星号,根据第一行打印出剩下几行的空格(根据第几行星号数量,找出空格规律)、剩下几行星号。

第一层的第一行是1个星号,第二层的第一行是3个星号,第三层的第一行是9个星号。

规律是 [1,3**(i-1)+1) 。空格则是总数14-floor(  (3**(i-1)+1)  /2)。

剩下几行规律是:

第一行星号数+层数*行数*2=行的星号数。即  (3**(i-1)+1)+i*k*2  个星号。

空格则是总数14-floor(  ((3**(i-1)+1)+i*k*2)  /2)。

其他部分:

实现方法太简单了,自行理解。

python打印圣诞树思路+详解简单粗暴实现相关推荐

  1. python打印小星星案例详解_音乐案例 《小星星》

    音乐活动<小星星> 设计意图: <小星星>这首歌,是一首经典的老歌,深受孩子们的喜爱.而三岁幼儿喜欢听童话故 事,我希望幼儿能在故事引导下自然投入表演及学会唱歌,并在熟悉歌曲的 ...

  2. 【蓝桥杯Python组】2022年第十三届蓝桥杯省赛B组Python解题思路详解

    第十三届蓝桥杯省赛B组Python解题思路详解 因为今年采用线上的举办方式进行比赛,所以组委会对题目做了一定的调整,将原来的5道填空+5道编程题变成了2道填空+8道编程题,据说是为了防止抄袭.其实题目 ...

  3. 循环嵌套思路详解 | 一个“在盒子里过家家”的算法 -- 以冒泡排序与打印菱形为例

    目录 前言 一.引例 -- 菱形打印 1. 题干要求 2. 如何阅读循环结构? 二."在盒子里过家家"的理解思路 1. 什么叫"在盒子里过家家"? 一个小例子 ...

  4. python怎么去掉视频字幕_利用Python实现字幕挂载(把字幕文件与视频合并)思路详解...

    其实超简单超简单!python好现成的库,一下子省略了好多步骤! 本文在Windows环境下!linux只是不需要手动输入imagicmagick的位置! 需要用到的环境 python(基本上只要不是 ...

  5. python正则表达式提取数字比较好_python正则表达式从字符串中提取数字的思路详解...

    python从字符串中提取数字 使用正则表达式,用法如下: ## 总结 ## ^ 匹配字符串的开始. ## $ 匹配字符串的结尾. ## \b 匹配一个单词的边界. ## \d 匹配任意数字. ## ...

  6. python处理excel大数据-Python实现大数据收集至excel的思路详解

    一.在工程目录中新建一个excel文件 二.使用python脚本程序将目标excel文件中的列头写入,本文省略该部分的code展示,可自行网上查询 三.以下code内容为:实现从接口获取到的数据值写入 ...

  7. python virtualenv conda_在vscode中启动conda虚拟环境的思路详解

    问题:cudatoolkit cudnn 通过conda 虚拟环境安装,先前已经使用virtualenv安装tf,需要在conda虚拟环境中启动外部python虚拟环境 思路:conda prompt ...

  8. python统计汉字字数_Python 统计字数的思路详解

    问题描述: 用 Python 实现函数 count_words(),该函数输入字符串 s 和数字 n,返回 s 中 n 个出现频率最高的单词.返回值是一个元组列表,包含出现次数最高的 n 个单词及其次 ...

  9. python逢7跳过_python实现逢七拍腿小游戏的思路详解

    逢七拍腿游戏 几个小朋友在一起玩逢七拍腿的游戏,从1开始数数,当数到7的倍数或者尾号是7时,拍一下腿.现在从1数到99,假设每个人都没有错,计算一下共要拍腿几次? 第一种实现思路:通过在for循环语句 ...

最新文章

  1. 【camera】自动驾驶感知系统实现(车道线检测和拟合、目标检测与跟踪、道路可行驶区域分割、深度估计、图像视野到BEV空间映射、像平面到地平面映射)
  2. Linux2.6--进程抢占和上下文切换
  3. Linux后台开发应该具备技能
  4. 我是如何用Worktile进行敏捷开发的
  5. 【洛谷】P4643 【模板】动态dp
  6. python打开控制台运行_如何在IPython控制台中默认运行文件而不是终端?
  7. 【Spring】Unable to start ServletWebServerApplicationContext due to miss ServletWebServerFactory bean
  8. “不要羡慕别人,因为你所看到的,都是表象”你怎么看?
  9. Collection 属性ArrayList.add方法内部调用过程
  10. 3Ds Max字母键的妙用
  11. 九、一个IC设计的公司的组织架构和部门职能
  12. SpringBoot 深入浅出
  13. js贷款还款计算:等额本金、等额本息、先息后本、等本等息
  14. Python-波斯日历转换(日期转换)
  15. Word操作技巧大全(目录、图表和公式……等等)
  16. python列表生成器语法_Python 列表生成式\生成器
  17. Spring Cloud 2.2.2 源码之二十九nacos客户端获取配置原理四
  18. Proxmox VE 7.2 更改登录横幅
  19. java IO学习心得
  20. 天眼查 Authorized和企查查 sign破解

热门文章

  1. Chapter6.1:线性系统的校正方法
  2. 锴量投资 | 量化多岗位招聘(全职+实习)
  3. IM开发者的零基础通信技术入门(十二):上网卡顿?网络掉线?一文即懂!
  4. nvm use报错exit status
  5. 阿里巴巴与全球最大P2P平台Lending Club达成合作
  6. 邮件发送失败原因分析
  7. 汽车各零部件标准对IPX9K/IP69K防水试验的要求
  8. 防护IOS APP安全的几种方式
  9. 正琢磨着哪个部位咬下去
  10. 火车站台(赛码)C++ AC