用python画圣诞树-圣诞节!教你用 Python 画棵圣诞树

原标题:圣诞节!教你用 Python 画棵圣诞树

7cadbd193e564bd59f22a34f2713a403.jpeg

作者 | 糖甜甜甜

责编 | 胡巍巍

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

最简单:

1height = 5

2

3stars = 1

4for i in range(height):

5print((' '* (height - i)) + ('*'* stars))

6stars += 2

7print((' '* height) + '|')

效果:

51ec61720d8b436196cc858eef46893f.png

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

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

方法一:

1import turtle

2screen = turtle.Screen()

3screen.setup(800,600)

4circle = turtle.Turtle()

5circle.shape('circle')

6circle.color('red')

7circle.speed('fastest')

8circle.up()

9square = turtle.Turtle()

10square.shape('square')

11square.color('green')

12square.speed('fastest')

13square.up()

14circle.goto(0,280)

15circle.stamp()

16k = 0

17for i in range(1, 17):

18y = 30*i

19forj in range(i-k):

20x = 30*j

21square.goto(x,-y+280)

22square.stamp()

23square.goto(-x,-y+280)

24square.stamp()

25ifi % 4== 0:

26x = 30*(j+1)

27circle.color('red')

28circle.goto(-x,-y+280)

29circle.stamp()

30circle.goto(x,-y+280)

31circle.stamp()

32k += 2

33ifi % 4== 3:

34x = 30*(j+1)

35circle.color('yellow')

36circle.goto(-x,-y+280)

37circle.stamp()

38circle.goto(x,-y+280)

39circle.stamp()

40square.color('brown')

41for i in range(17,20):

42y = 30*i

43forj in range(3):

44x = 30*j

45square.goto(x,-y+280)

46square.stamp()

47square.goto(-x,-y+280)

48square.stamp()

49turtle.exitonclick()

效果:

d60614dc7a484c1492e524fcdfa0d025.png

方法二:

1from turtle import*

2import random

3import time

4

5n = 80.0

6

7speed("fastest")

8screensize(bg='seashell')

9left(90)

10forward(3*n)

11color("orange", "yellow")

12begin_fill()

13left(126)

14

15for i in range(5):

16forward(n/5)

17right(144)

18forward(n/5)

19left(72)

20end_fill()

21right(126)

22

23color("dark green")

24backward(n*4.8)

25def tree(d, s):

26ifd <= 0: return

27forward(s)

28tree(d-1, s*.8)

29right(120)

30tree(d-3, s*.5)

31right(120)

32tree(d-3, s*.5)

33right(120)

34backward(s)

35tree(15, n)

36backward(n/2)

37

38for i in range(200):

39a = 200- 400* random.random()

40b = 10- 20* random.random()

41up()

42forward(b)

43left(90)

44forward(a)

45down()

46ifrandom.randint(0, 1) == 0:

47color('tomato')

48else:

49color('wheat')

50circle(2)

51up()

52backward(a)

53right(90)

54backward(b)

55time.sleep(60)

效果:

da898019f3f242c486e447f47d741e6c.gif

感兴趣的话就赶紧尝试一下吧!

祝大家平安夜快乐!!!圣诞节快乐!!!

6733d37f715e4b39aa32063345d9e73f.png

b2aea5b6a55b4ff6a768973b52acbab8.png

作者:糖甜甜甜,985高校经管研二,擅长用Python、R、tableau等工具结合统计学和机器学习模型做数据分析。个人公众号:经管人学数据分析(ID:DAT-2017)

声明:本文为作者投稿,版权归对方所有。

责任编辑:

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值