python里面的海龟是作图常用工具,初学python的应该都使用过

一、满树的樱花

# coding=utf-8
# 画一棵樱花
 
 
import turtle
import random
from turtle import *
from time import sleep
 
 
# 画樱花的躯干(60,t)
def tree(branchLen,t):
    sleep(0.0005)
    if branchLen >3:
        if 8<= branchLen <=12:
            if random.randint(0,2) == 0:
                t.color('snow') # 白
            else:
                t.color('lightcoral') # 淡珊瑚色
            t.pensize(branchLen / 3)
        elif branchLen <8:
            if random.randint(0,1) == 0:
                t.color('snow')
            else:
                t.color('lightcoral') # 淡珊瑚色
            t.pensize(branchLen / 2)
        else:
            t.color('sienna') # 赭(zhě)色
            t.pensize(branchLen / 10) # 6
        t.forward(branchLen)
        a = 1.5 * random.random()
        t.right(20*a)
        b = 1.5 * random.random()
        tree(branchLen-10*b, t)
        t.left(40*a)
        tree(branchLen-10*b, t)
        t.right(20*a)
        t.up()
        t.backward(branchLen)
        t.down()
 
# 掉落的花瓣


def petal(m, t):
    for i in range(m):
        a = 200 - 400 * random.random()
        b = 10 - 20 * random.random()
        t.up()
        t.forward(b)
        t.left(90)
        t.forward(a)
        t.down()
        t.color('lightcoral') # 淡珊瑚色
        t.circle(1)
        t.up()
        t.backward(a)
        t.right(90)
        t.backward(b)
 
def main():
    # 绘图区域
    t = turtle.Turtle()
    # 画布大小
    w = turtle.Screen()
    t.hideturtle() # 隐藏画笔
    t.getscreen().tracer(5,0) # 网上大多这句写的有点问题,所以中间多了个画笔
    w.screensize(bg='wheat') # wheat小麦
    t.left(90)
    t.up()
    t.backward(150)
    t.down()
    t.color('sienna')
 
    # 画樱花的躯干
    tree(60,t)
    # 掉落的花瓣
    petal(200, t)
    w.exitonclick()
 
main()

由于使用到了random,每次画出来的都不一样

二、比个心

from turtle import *


def go_to(x, y):
  up()
  goto(x, y)
  down()


def big_Circle(size):  #函数用于绘制心的大圆
  speed(10)
  for i in range(150):
      forward(size)
      right(0.3)

def small_Circle(size):  #函数用于绘制心的小圆
  speed(10)
  for i in range(210):
      forward(size)
      right(0.786)

def line(size):
  speed(10)
  forward(51*size)

def heart( x, y, size):
  go_to(x, y)
  left(150)
  begin_fill()
  line(size)
  big_Circle(size)
  small_Circle(size)
  left(120)
  small_Circle(size)
  big_Circle(size)
  line(size)
  end_fill()

def arrow():
  pensize(10)
  setheading(0)
  go_to(-400, 0)
  left(15)
  forward(150)
  go_to(339, 178)
  forward(150)

def arrowHead():
  pensize(1)
  speed(20)
  color('red', 'red')
  begin_fill()
  left(120)
  forward(20)
  right(150)
  forward(35)
  right(120)
  forward(35)
  right(150)
  forward(20)
  end_fill()


def main():
  pensize(2)
  color('red', 'pink')
  #getscreen().tracer(30, 0) #取消注释后,快速显示图案
  heart(200, 0, 1)          #画出第一颗心,前面两个参数控制心的位置,函数最后一个参数可控制心的大小
  setheading(0)             #使画笔的方向朝向x轴正方向
  heart(-80, -100, 1.5)     #画出第二颗心
  arrow()                   #画出穿过两颗心的直线
  arrowHead()               #画出箭的箭头
  go_to(400, -300)
  write("爱你的:渣渣", move=True, align="left", font=("宋体", 30, "normal")) #署名
  done()

main()

想着朋友生日给他给他做成exe格式的,这样不依赖于python环境,后续弄了挺久,打包的流程就放在第二篇吧,等周五了再更新。