问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python可以写那种动态的圣诞树吗

发布网友 发布时间:2022-04-29 08:23

我来回答

2个回答

懂视网 时间:2022-04-29 12:44

python圣诞树代码

1、简单的绘制圣诞树

新建tree1.py或者直接输入下面代码运行

(推荐学习:Python教程)

#声明树的高度
height = 5
#树的雪花数,初始为1
stars = 1
#以数的高度作为循环次数
 
for i in range(height):
 print((' ' * (height - i)) + ('*' * stars))
 stars += 2
#输出树干
print((' ' * height) + '|')

1.png

2、使用turtle绘制简单圣诞树

新建tree2py,输入以下代码

#导入turtle库
import turtle
#设置屏幕大小
screen = turtle.Screen()
screen.setup(800,600)
#获取画笔并设置一些属性:圆形、红色、快
circle = turtle.Turtle()
circle.shape('circle')
circle.color('red')
circle.speed('fastest')
#抬起画笔
circle.up()
#重新获取画笔
square = turtle.Turtle()
#重新设置画笔属性:四方形、绿色、快
square.shape('square')
square.color('green')
square.speed('fastest')
#重新抬起画笔
square.up()
#跳到指定坐标位置
circle.goto(0,280)
#复制当前图形
circle.stamp()
k = 0
for i in range(1, 17):
 y = 30*i
 for j in range(i-k):
 x = 30*j
 square.goto(x,-y+280)
 square.stamp()
 square.goto(-x,-y+280)
 square.stamp()
 if i % 4 == 0:
 x = 30*(j+1)
 circle.color('red')
 circle.goto(-x,-y+280)
 circle.stamp()
 circle.goto(x,-y+280)
 circle.stamp()
 k += 2
 if i % 4 == 3:
 x = 30*(j+1)
 circle.color('yellow')
 circle.goto(-x,-y+280)
 circle.stamp()
 circle.goto(x,-y+280)
 circle.stamp()
square.color('brown')
for i in range(17,20):
 y = 30*i
 for j in range(3):
 x = 30*j
 square.goto(x,-y+280)
 square.stamp()
 square.goto(-x,-y+280)
 square.stamp()
turtle.exitonclick()

运行:

2.png

3、使用Turtle绘制复杂圣诞树

新建tree3.py,输入以下代码

#导入所依赖的库
from turtle import *
import random
import time
 
n = 80.0
#设置速度快
speed("fastest")
#背景颜色 海贝壳色,偏粉色
screensize(bg='seashell')
left(90)
forward(3*n)
color("orange", "yellow")
begin_fill()
left(126)
 
for i in range(5):
 forward(n/5)
 right(144)
 forward(n/5)
 left(72)
end_fill()
right(126)
 
color("dark green")
backward(n*4.8)
def tree(d, s):
 if d <= 0: return
 forward(s)
 tree(d-1, s*.8)
 right(120)
 tree(d-3, s*.5)
 right(120)
 tree(d-3, s*.5)
 right(120)
 backward(s)
tree(15, n)
backward(n/2)
 
for i in range(200):
 a = 200 - 400 * random.random()
 b = 10 - 20 * random.random()
 up()
 forward(b)
 left(90)
 forward(a)
 down()
 if random.randint(0, 1) == 0:
  color('tomato')
 else:
 color('wheat')
 circle(2)
 up()
 backward(a)
 right(90)
 backward(b)
time.sleep(60)

运行:

3.png

热心网友 时间:2022-04-29 09:52

可以。

Python源代码:

from random import randint from time import sleepimport coloramafrom colorama import Fore, Back, Stylecolorama.init()rnd2 = randint(1,60)def gentree():for x in range(1,30,2):rnd1 = randint(1,rnd2)if x == 1:ch = "$"elif rnd1 % 4 == 0:ch =  "o"elif rnd1 % 3 == 0:ch = "j"elif rnd1 % 5 == 0:ch = "o"elif rnd1 % 7 == 0:ch = "j"else:ch ="*"if ch == "$":print(Fore.RED +"{:^33}".format(ch * x))elif ch == "o":print(Fore.RED +"{:^33}".format(ch * x))elif ch == "j":print(Fore.YELLOW +"{:^33}".format(ch * x))else:print(Fore.GREEN +"{:^33}".format(ch * x))print("{:^33}".format('|||'))print("{:^33}".format('|||')) print("{:^33}".format('         Merry_christmas         '))sleep(.24)gentree()



声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 江津建行房贷利率 华阴市建设银行的房贷利率是多少 东莞万江区有哪几个镇 东莞的哪个镇属于中心地区 东莞有几个镇,分别是哪些镇?谢谢 东莞市洪梅镇和万江镇是不是同一个镇来的?谢谢! 东莞万江龙屋基街是属于东莞那个镇? 东莞有几个镇,几个区? 东莞市万江区新村属于哪个镇或者哪个街道的?还有邮政编码是多少? 东莞市地理划分,东部各镇街的名称 东莞有多少个镇啊,叫什么名字,东莞市政府在那个镇? 东莞万江那里是属于东莞市区么,或者说是中心区么? 东莞万江区有那些镇? 东莞的每个区划分多少个镇啊?那些镇又分别是属于哪个区? 广东省东莞市万江街道属于哪个区? 东莞市四个区分别有什么镇? 东莞有几个镇,分别是哪些镇 广东省东莞市万江街道属于哪个区 广东省东莞市万江镇跟哪个镇接近附近有些什么镇 上3700x打游戏,很纠结,推荐啥主板? 行组词多音字组词 用“行”(hang)组词有哪些? 行的两种读音组词? 行(hang)能组什么词 行的多音字组词 “行”字可以怎么组词? “行”音序、音节、组词? 行的多音字组词。有多少个。 行有哪些读音并组词 行的拼音和 组词 行(hang)第四声组词 heng就是行组词 怎样用python设计圣诞 Python用*打印圣诞树图案要求树冠三角形部分为n=5行,中间树干部分为4行,每行三个* 在微信群被人恶意投诉了,解封以后退群了,他还能继续技投诉吗? 微信被封号如果被举报封号后还能用吗 微信投诉完了还能用吗 微信群被投诉可以解除吗? 微信群被投诉了有用吗 我的微信群被投诉封了,会对我个人有影响吗?