飞道的博客

教你用Python画了一棵圣诞树

416人阅读  评论(0)

分享给大家一篇文章,教你怎样用Python画了一棵圣诞树,快来学习。

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

最简单:


  
  1. height = 5
  2. stars = 1
  3. for i in range(height):
  4. print(( ' ' * (height - i)) + ( '*' * stars))
  5. stars += 2
  6. print(( ' ' * height) + '|')

效果:

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

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


  
  1. import turtle
  2. screen = turtle.Screen()
  3. screen.setup( 375, 700)
  4. circle = turtle.Turtle()
  5. circle.shape( 'circle')
  6. circle.color( 'red')
  7. circle.speed( 'fastest')
  8. circle.up()
  9. square = turtle.Turtle()
  10. square.shape( 'square')
  11. square.color( 'green')
  12. square.speed( 'fastest')
  13. square.up()
  14. circle.goto( 0, 280)
  15. circle.stamp()
  16. k = 0
  17. for i in range( 1, 13):
  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 += 3
  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()
  40. square.color( 'brown')
  41. for i in range( 13, 17):
  42. y = 30 * i
  43. for j in range( 2):
  44. x = 30 * j
  45. square.goto(x, -y + 280)
  46. square.stamp()
  47. square.goto(-x, -y + 280)
  48. square.stamp()

效果:

方法二:


  
  1. import turtle
  2. # 定义圣诞树的绿叶函数
  3. def tree(d, s):
  4. if d <= 0:
  5. return
  6. turtle.forward(s)
  7. tree(d - 1, s * .8)
  8. turtle.right( 120)
  9. tree(d - 3, s * .5)
  10. turtle.right( 120)
  11. tree(d - 3, s * .5)
  12. turtle.right( 120)
  13. turtle.backward(s)
  14. n = 100
  15. """ 设置绘图速度
  16. 'fastest' : 0
  17. 'fast' : 10
  18. 'normal' : 6
  19. 'slow' : 3
  20. 'slowest' : 1
  21. """
  22. turtle.speed( 'fastest') # 设置速度
  23. turtle.left( 90)
  24. turtle.forward( 3 * n)
  25. turtle.color( "orange", "yellow")
  26. turtle.left( 126)
  27. # turtle.begin_fill()
  28. for i in range( 5):
  29. turtle.forward(n / 5)
  30. turtle.right( 144)
  31. turtle.forward(n / 5)
  32. turtle.left( 72)
  33. turtle.end_fill()
  34. turtle.right( 126)
  35. turtle.color( "dark green")
  36. turtle.backward(n * 4.8)
  37. # 执行函数
  38. tree( 15, n)
  39. turtle.backward(n / 5)

效果:

 

 

 

IT入门 感谢关注

 

 

程序员题库→

程序员用的单词表→

练习地址:www.520mg.com/it

 

 


转载:https://blog.csdn.net/bigzql/article/details/110124594
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场