使用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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/462868.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

camera和lidar外参标定

雷达和相机的外参标定(外部参数标定)指的是确定两者之间的旋转和平移关系,使得它们的坐标系可以对齐。 文章目录 无目标标定livox_camera_calibdirect_visual_lidar_calibration 有目标标定velo2cam_calibration 无目标标定 livox_camera_ca…

《使用Gin框架构建分布式应用》阅读笔记:p307-p392

《用Gin框架构建分布式应用》学习第16天,p307-p392总结,总86页。 一、技术总结 1.AWS chapter 08讲使用AWS进行部署,可以根据需要选择是否阅读。因为使用到的概率很小,且还要绑卡,本人选择跳过。 2.CI/CD (1)什么…

【初阶数据结构】实现顺序结构二叉树->堆(附源码)

文章目录 须知 💬 欢迎讨论:如果你在学习过程中有任何问题或想法,欢迎在评论区留言,我们一起交流学习。你的支持是我继续创作的动力! 👍 点赞、收藏与分享:觉得这篇文章对你有帮助吗&#xff1…

ChatGPT变AI搜索引擎!以后还需要谷歌吗?

前言 在北京时间11月1日凌晨,正值ChatGPT两岁生日之际,OpenAI宣布推出最新的人工智能搜索体验!具备实时网络功能!与 Google 展开直接竞争。 ChatGPT搜索的推出标志着ChatGPT成功消除了即时信息这一最后的短板。 这项新功能可供 …

实用篇:Postman历史版本下载

postman历史版本下载步骤 1.官方历史版本发布信息 2.点进去1中的链接,往下滑动;选择你想要的版本 例如下载v11.18版本 3.根据操作系统选择 mac:mac系统postman下载 window:window系统postman下载 4.在old version里找到对应版本下载即可 先点击download 再点击free downlo…

提高后端接口性能的方法

个人bibilailai(不喜请跳过):前几天参加的部门技术分享会,同事分享了一个内容为“提高接口性能的常见技巧”,个人觉得很有用,所以想在这里分享给大家,希望对刚入职场不久的兄弟姐妹们有所帮助。…

解决CentOS7 yum update异常:Could not retrieve mirrorlist

报错 Could not retrieve mirrorlist http://mirrorlist.centos.org/?release7&archx86_64&repoos&infrastock error was 14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error" 解决 执行命令:切换目录&#xff0…

Mybatis查询数据库,返回List集合,集合元素也是List。

#有时间需求会要求&#xff1a;查询全校的学生数据&#xff0c;且学生数据按班级划分。那么就需要List<List<user>>类型的数据。 SQL语句 SELECT JSON_ARRAYAGG(JSON_OBJECT(name , name ,BJMC, BJMC ,BJBH,BJBH)) as dev_user FROM dev_user WHERE project_id …

Linux:防火墙和selinux对服务的影响

1-1selinux 1-1 SELinux是对程序、文件等权限设置依据的一个内核模块。由于启动网络服务的也是程序&#xff0c;因此刚好也 是能够控制网络服务能否访问系统资源的一道关卡。 1-2 SELinux是通过MAC的方式来控制管理进程&#xff0c;它控制的主体是进程&#xff0c;而目标则是…

论文阅读笔记Dense Passage Retrieval for Open-Domain Question Answering

前言 在开放域的问答系统中&#xff0c;我们需要从大量的文本数据中搜索匹配我们想要的答案&#xff08;或者学习文档的“信息知识”用于生成答案&#xff09;&#xff0c;而对每个问题都进行全文的数据“学习”是不现实的&#xff0c;因此往往依赖于高效的文本检索来选择候选…

书生大模型第四期 | L0G3000 git 基础知识

1、破冰行动 fork项目 PR链接&#xff1a;跳转访问 https://github.com/InternLM/Tutorial/pull/21632、构建个人项目 创建一个仓库保存LLM学习的笔记&#xff0c;以md文件为主 博客页面项目

List 列表基础用法

List 列表基础用法 列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同&#xff0c;它支持数字&#xff0c;字符串甚至可以包含列表&#xff08;所谓嵌套&#xff09;。 列表是写在方括号 [] 之间、用逗号分隔开的元素列表。 和字符串一样&#xff0c;列表…

从0开始学PHP面向对象内容之(类,对象,构造/析构函数)

上期我们讲了面向对象的一些基本信息&#xff0c;这期让我们详细的了解一下 一、面向对象—类 1、PHP类的定义语法&#xff1a; <?php class className {var $var1;var $var2 "constant string";function classfunc ($arg1, $arg2) {[..]}[..] } ?>2、解…

详细记录555定时器组成和工作原理(第一篇)

目录 一、创作灵感 二、CB555的电路结构图 1、比较器C1和C2 2、三个5KΩ串联组成的分压电路 3、由与非门G1和G2组成的SR锁存器 4、G3、G4、集电极开路的放电三极管TD 三、CB555引脚功能 1、CB555引脚功能描述 2、CB555的功能表 四、CB555施密特触发器 1、施密特触发器…

Linux_02 Linux常用软件——vi、vim

vi编辑器有三种主要模式&#xff0c;每种模式的功能和用途不同&#xff1a; 一、命令模式 (Command Mode)&#xff1a; - 启动 vi 时默认进入此模式。 - 你可以在此模式下移动光标&#xff0c;输入各种命令&#xff08;如删除、复制、粘贴等&#xff09;。 yy&#xff1a;…

C#与C++交互开发系列(十八):跨进程通信之命名管道(Named Pipes)

1、前言 在 C# 和 C 应用程序之间进行数据交换时&#xff0c;命名管道&#xff08;Named Pipes&#xff09;是一种简单高效的进程间通信&#xff08;IPC&#xff09;方式。命名管道提供了可靠的双向通信通道&#xff0c;适合用于同一台机器上的跨进程通信。本文将深入介绍如何…

uniapp的video视频属性打包app后层级过高

问题&#xff1a;在使用uniapp开发APP时&#xff0c;使用video标签显示视频发现H5可以正常展示&#xff0c;但是打包到APP后&#xff0c;它的层级过高&#xff0c;把底部导航都盖住了。 官网说明&#xff1a;uni-app官网 官网给了cover-view组件或plus.nativeObj.view、subNVue…

【linux 多进程并发】0302 Linux下多进程模型的网络服务器架构设计,实时响应多客户端请求

0302 多进程网络服务器架构 ​专栏内容&#xff1a; postgresql使用入门基础手写数据库toadb并发编程 个人主页&#xff1a;我的主页 管理社区&#xff1a;开源数据库 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物. 一、概…

SQLI LABS | Less-26 GET-Error Based-All Your SPACES And COMMENTS Belong To Us

关注这个靶场的其它相关笔记&#xff1a;SQLI LABS —— 靶场笔记合集-CSDN博客 0x01&#xff1a;过关流程 输入下面的链接进入靶场&#xff08;如果你的地址和我不一样&#xff0c;按照你本地的环境来&#xff09;&#xff1a; http://localhost/sqli-labs/Less-25/ 本关考察…

XML标记语言

最近在学XXE-XML外部实体注入漏洞时候&#xff0c;浅浅学习了一下XML&#xff0c;谨做此学习笔记。 目录 一&#xff1a;XML概述 二&#xff1a;XML语法 XML中的CDATA 三&#xff1a;使用PHP解析XML文档 添加节点 四&#xff1a;Xpath语言 绝对查找 相对查找 使用*匹配…