python打印圣诞树思路+详解简单粗暴实现
一、打印一个简单版圣诞树
实现如下:
# *
# ***
# *****
# *******
# *********
# *
# *
# *
代码:
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打印圣诞树思路+详解简单粗暴实现相关推荐
- python打印小星星案例详解_音乐案例 《小星星》
音乐活动<小星星> 设计意图: <小星星>这首歌,是一首经典的老歌,深受孩子们的喜爱.而三岁幼儿喜欢听童话故 事,我希望幼儿能在故事引导下自然投入表演及学会唱歌,并在熟悉歌曲的 ...
- 【蓝桥杯Python组】2022年第十三届蓝桥杯省赛B组Python解题思路详解
第十三届蓝桥杯省赛B组Python解题思路详解 因为今年采用线上的举办方式进行比赛,所以组委会对题目做了一定的调整,将原来的5道填空+5道编程题变成了2道填空+8道编程题,据说是为了防止抄袭.其实题目 ...
- 循环嵌套思路详解 | 一个“在盒子里过家家”的算法 -- 以冒泡排序与打印菱形为例
目录 前言 一.引例 -- 菱形打印 1. 题干要求 2. 如何阅读循环结构? 二."在盒子里过家家"的理解思路 1. 什么叫"在盒子里过家家"? 一个小例子 ...
- python怎么去掉视频字幕_利用Python实现字幕挂载(把字幕文件与视频合并)思路详解...
其实超简单超简单!python好现成的库,一下子省略了好多步骤! 本文在Windows环境下!linux只是不需要手动输入imagicmagick的位置! 需要用到的环境 python(基本上只要不是 ...
- python正则表达式提取数字比较好_python正则表达式从字符串中提取数字的思路详解...
python从字符串中提取数字 使用正则表达式,用法如下: ## 总结 ## ^ 匹配字符串的开始. ## $ 匹配字符串的结尾. ## \b 匹配一个单词的边界. ## \d 匹配任意数字. ## ...
- python处理excel大数据-Python实现大数据收集至excel的思路详解
一.在工程目录中新建一个excel文件 二.使用python脚本程序将目标excel文件中的列头写入,本文省略该部分的code展示,可自行网上查询 三.以下code内容为:实现从接口获取到的数据值写入 ...
- python virtualenv conda_在vscode中启动conda虚拟环境的思路详解
问题:cudatoolkit cudnn 通过conda 虚拟环境安装,先前已经使用virtualenv安装tf,需要在conda虚拟环境中启动外部python虚拟环境 思路:conda prompt ...
- python统计汉字字数_Python 统计字数的思路详解
问题描述: 用 Python 实现函数 count_words(),该函数输入字符串 s 和数字 n,返回 s 中 n 个出现频率最高的单词.返回值是一个元组列表,包含出现次数最高的 n 个单词及其次 ...
- python逢7跳过_python实现逢七拍腿小游戏的思路详解
逢七拍腿游戏 几个小朋友在一起玩逢七拍腿的游戏,从1开始数数,当数到7的倍数或者尾号是7时,拍一下腿.现在从1数到99,假设每个人都没有错,计算一下共要拍腿几次? 第一种实现思路:通过在for循环语句 ...
最新文章
- 【camera】自动驾驶感知系统实现(车道线检测和拟合、目标检测与跟踪、道路可行驶区域分割、深度估计、图像视野到BEV空间映射、像平面到地平面映射)
- Linux2.6--进程抢占和上下文切换
- Linux后台开发应该具备技能
- 我是如何用Worktile进行敏捷开发的
- 【洛谷】P4643 【模板】动态dp
- python打开控制台运行_如何在IPython控制台中默认运行文件而不是终端?
- 【Spring】Unable to start ServletWebServerApplicationContext due to miss ServletWebServerFactory bean
- “不要羡慕别人,因为你所看到的,都是表象”你怎么看?
- Collection 属性ArrayList.add方法内部调用过程
- 3Ds Max字母键的妙用
- 九、一个IC设计的公司的组织架构和部门职能
- SpringBoot 深入浅出
- js贷款还款计算:等额本金、等额本息、先息后本、等本等息
- Python-波斯日历转换(日期转换)
- Word操作技巧大全(目录、图表和公式……等等)
- python列表生成器语法_Python 列表生成式\生成器
- Spring Cloud 2.2.2 源码之二十九nacos客户端获取配置原理四
- Proxmox VE 7.2 更改登录横幅
- java IO学习心得
- 天眼查 Authorized和企查查 sign破解