前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >教你用Python画一棵圣诞树

教你用Python画一棵圣诞树

作者头像
DataScience
发布2021-01-05 23:08:44
1.7K0
发布2021-01-05 23:08:44
举报
文章被收录于专栏:A2DataA2Data

如何用Python画一个圣诞树呢?

最简单的方法:

代码语言:javascript
复制
height = 5
stars = 1for i in range(height):    print((' ' * (height - i)) + ('*' * stars))    stars += 2print((' ' * height) + '|')

效果:

哈哈哈哈,总有一种骗了大家的感觉。

其实本文是想介绍Turtle库来画圣诞树。

代码语言:javascript
复制
import turtle
screen = turtle.Screen()screen.setup(375, 700) 
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 = 0for i in range(1, 13):    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 += 3
    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(13, 17):    y = 30 * i    for j in range(2):        x = 30 * j        square.goto(x, -y + 280)        square.stamp()        square.goto(-x, -y + 280)        square.stamp()

效果:

方法二:

代码语言:javascript
复制
import turtle

# 定义圣诞树的绿叶函数def tree(d, s):    if d <= 0:        return    turtle.forward(s)    tree(d - 1, s * .8)    turtle.right(120)    tree(d - 3, s * .5)    turtle.right(120)    tree(d - 3, s * .5)    turtle.right(120)    turtle.backward(s)

n = 100""" 设置绘图速度'fastest' :  0'fast'    :  10'normal'  :  6'slow'    :  3'slowest' :  1"""turtle.speed('fastest') # 设置速度
turtle.left(90)turtle.forward(3 * n)turtle.color("orange", "yellow")turtle.left(126)

# turtle.begin_fill()for i in range(5):    turtle.forward(n / 5)    turtle.right(144)    turtle.forward(n / 5)    turtle.left(72)    turtle.end_fill()turtle.right(126)turtle.color("dark green")turtle.backward(n * 4.8)
# 执行函数tree(15, n)turtle.backward(n / 5)

效果:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-12-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DataScience 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档