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循环语句 ...
最新文章
- 「AI不惑境」残差网络的前世今生与原理
- 微信小程序把玩(二十八)image组件
- 已解决:Connecting to raw.githubusercontent.com |185.199.109.133|:443... Unable to establish SSL connect
- 订单可视化(智能制造、流程再造、企业信息化) 第五篇 团队建设
- 神经网络贷款风险评估(base on keras and python ) 原创 2017年08月18日 14:35:17 标签: python / 神经网络 / keras 300 用我
- php new对象 调用函数,关于JS中new调用函数的原理介绍
- 互联网1分钟 | 1015
- spring boot整合freemarker及freemarker基础语法超详细讲解
- django language_第 58 天:Python Web开发 Django 简介
- 会员登录 php,php $_SESSION会员登录实例分享
- IQ推理:P先生和Q先生
- 使用phpmyadmin管理远程sql_CentOS7系统配置phpMyAdmin
- 简略讲述我的Fiddler的安转和配置过程
- catia三维轴承_基于CATIA的轴承三维参数化标准件库的开发
- Linux/ubuntu AWK / BEGIN / END的用法
- 2020年手机上最好的25种免费游戏
- 数仓中的维度、原子指标、派生指标、衍生指标、指标分类、缓慢变化维等的含义
- 高仿富途牛牛-组件化(一)-支持页签拖拽、增删、小工具
- 每日10行代码82:网上购物活动满减凑单计算器
- HDFS分布式文件系统架构