聖誕節!教你用 Python 畫棵聖誕樹
阿新 • • 發佈:2018-12-27
作者 | 糖甜甜甜
責編 | 胡巍巍
如何用Python畫一個聖誕樹呢?
最簡單:
1height = 5
2
3stars = 1
4for i in range(height):
5 print((' ' * (height - i)) + ('*' * stars))
6 stars += 2
7print((' ' * height) + '|')
效果:
哈哈哈哈,總有一種騙了大家的感覺。
其實本文是想介紹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): 18 y = 30*i 19 for j in range(i-k): 20 x = 30*j 21 square.goto(x,-y+280) 22 square.stamp() 23 square.goto(-x,-y+280) 24 square.stamp() 25 if i % 4 == 0: 26 x = 30*(j+1) 27 circle.color('red') 28 circle.goto(-x,-y+280) 29 circle.stamp() 30 circle.goto(x,-y+280) 31 circle.stamp() 32 k += 2 33 if i % 4 == 3: 34 x = 30*(j+1) 35 circle.color('yellow') 36 circle.goto(-x,-y+280) 37 circle.stamp() 38 circle.goto(x,-y+280) 39 circle.stamp() 40square.color('brown') 41for i in range(17,20): 42 y = 30*i 43 for j in range(3): 44 x = 30*j 45 square.goto(x,-y+280) 46 square.stamp() 47 square.goto(-x,-y+280) 48 square.stamp() 49turtle.exitonclick()
效果:
方法二:
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): 16 forward(n/5) 17 right(144) 18 forward(n/5) 19 left(72) 20end_fill() 21right(126) 22 23color("dark green") 24backward(n*4.8) 25def tree(d, s): 26 if d <= 0: return 27 forward(s) 28 tree(d-1, s*.8) 29 right(120) 30 tree(d-3, s*.5) 31 right(120) 32 tree(d-3, s*.5) 33 right(120) 34 backward(s) 35tree(15, n) 36backward(n/2) 37 38for i in range(200): 39 a = 200 - 400 * random.random() 40 b = 10 - 20 * random.random() 41 up() 42 forward(b) 43 left(90) 44 forward(a) 45 down() 46 if random.randint(0, 1) == 0: 47 color('tomato') 48 else: 49 color('wheat') 50 circle(2) 51 up() 52 backward(a) 53 right(90) 54 backward(b) 55time.sleep(60)
效果:
感興趣的話就趕緊嘗試一下吧!
祝大家平安夜快樂!!!聖誕節快樂!!!
作者:糖甜甜甜,985高校經管研二,擅長用Python、R、tableau等工具結合統計學和機器學習模型做資料分析。個人公眾號:經管人學資料分析(ID:DAT-2017)
宣告:本文為作者投稿,版權歸對方所有。