哈哈哈再过十几天就到了一年一度的情人节啦!如此浪漫的日子,小王决定用Python写一个简单的表白神器送给大家,祝天下有情人终成眷属!

目录
前言
一、Turtle小海龟
1. 基本函数
2. 漂浮爱心
二、Tkinter界面设计
1. 基本函数
2. 表白界面
完整程序
前言
主要运用Python的内置包turtle和tkinter,都是Python3的内置包,如果你的Python版本中没有这两个包的话,需要先安装一下喔~
一、Turtle小海龟
因为我们需要用到turtle小海龟来实现漂浮的爱心,所以在这里我们简单介绍一下用到的函数叭~
1. 基本函数
① 设置画板大小
turtle.setup() 
② 设置画布大小
turtle.screensize() 
③ 设置画布颜色
turtle.bgcolor() 
④ 关于画笔
t=turtle.Pen()      #设置画笔为t
t.hideturtle()      #隐藏画笔(可简写成t.ht)
t.pensize()         #设置画笔大小
t.color()           #设置画笔颜色
t.penup()           #提笔
t.pendown()         #落笔
t.goto()            #设置画笔初始坐标
t.setheading()      #设置画笔初始方向
t.left()或t.lt()    #将画笔向左旋转
t.right()或t.rt()   #将画笔向右旋转 
t.forward()或t.fd() #画笔向前画
t.fillcolor()       #填充颜色
t.begin_fill()      #开始填充
t.end_fill()        #结束填充
t.circle()          #画圆
 
⑤ 隐藏/显示画画过程
turtle.tracer(False)   #隐藏
turtle.tracer(True)    #显示 
⑥ 不断刷新画布
turtle.mainloop() 
2. 漂浮爱心
爱心类
        def __init__(self):
            self.r = ra.randint(10,15)
            self.x = ra.randint(-1000,1000)
            self.y = ra.randint(-500,500)
            self.f = ra.uniform(-3.14,3.14)
            self.speed = ra.randint(5,10)
            self.color = ra.choice(colors)
            self.outline = 1  
爱心函数
        def draw(self):
            t.pensize(self.outline)
            t.penup()
            t.color(self.color)
            t.goto(self.x, self.y)
            t.pendown()
            t.begin_fill()
            t.fillcolor('pink')
            t.setheading(120)
            t.circle(self.r, 195)
            t.fd(self.r * 2.4)
            t.lt(90)
            t.fd(self.r * 2.4)
            t.circle(self.r, 195)
            t.end_fill() 
漂浮函数
        def move(self):
            if self.y <= 500:
                self.y += self.speed
                self.x += self.speed * math.sin(self.f)
                self.f += 0.1
            else:
                self.r = ra.randint(10,15)
                self.x = ra.randint(-1000,1000)
                self.y = -500
                self.f = ra.uniform(-3.14,3.14)
                self.speed = ra.randint(5,10)
                self.color = ra.choice(colors)
                self.outline = 1  
二、Tkinter界面设计
在简单了解了turtle小海龟后,我们就可以画漂浮的爱心啦,但是只有爱心的话就有点单调喽,我们可以使用Python的内置包tkinter设计一个简单的界面,来增强我们的神器哦~
1. 基本函数
① 创建界面
root=tkinter.Tk() 
② 设置界面标题
tkinter.title() 
③ 隐藏界面的最小化以及缩放按钮
root.wm_attributes("-toolwindow",1) 
④ 设置界面的大小
root.geometry() 
⑤ messagebox提示框
tkinter.messagebox.showinfo()      #提示
tkinter.messagebox.showwarning()   #警告
tkinter.messagebox.showerror()     #错误
tkinter.messagebox.askyesno()      #判断 
⑥ Button按钮
tkinter.Button() 
⑦ 绑定退出事件
root.protocol('WM_DELETE_WINDOW', closeWindow)    #closeWindow为自定义函数 
⑧ 销毁界面
root.destroy() 
2. 表白界面
同意按钮
def OK():            #同意按钮
    root.destroy()
    Love()           #同意后显示漂浮爱心 
拒绝按钮
def NO():            #拒绝按钮,拒绝不会退出,必须同意才可以退出哦~
    tk.messagebox.showwarning('❤','再给你一次机会!')  
退出按钮
def closeWindow():    #绑定退出按钮的事件,无法退出,必须同意哦~
    tk.messagebox.showwarning('❤','逃避是没有用的哦') 
完整程序
点击下载源码:Python情人节表白神器-Python文档类资源-CSDN下载
import tkinter as tk
import tkinter.messagebox
import turtle as tu
import random as ra
import math
def Love():
tu.setup(1.0, 1.0)
tu.screensize(1.0, 1.0)
t = tu.Pen()
t.ht()
colors = ['pink']
class Heart():
def __init__(self):
self.r = ra.randint(10,15)
self.x = ra.randint(-1000,1000)
self.y = ra.randint(-500,500)
self.f = ra.uniform(-3.14,3.14)
self.speed = ra.randint(5,10)
self.color = ra.choice(colors)
self.outline = 1
def draw(self):
t.pensize(self.outline)
t.penup()
t.color(self.color)
t.goto(self.x, self.y)
t.pendown()
t.begin_fill()
t.fillcolor('pink')
t.setheading(120)
t.circle(self.r, 195)
t.fd(self.r * 2.4)
t.lt(90)
t.fd(self.r * 2.4)
t.circle(self.r, 195)
t.end_fill()
def move(self):
if self.y <= 500:
self.y += self.speed
self.x += self.speed * math.sin(self.f)
self.f += 0.1
else:
self.r = ra.randint(10,15)
self.x = ra.randint(-1000,1000)
self.y = -500
self.f = ra.uniform(-3.14,3.14)
self.speed = ra.randint(5,10)
self.color = ra.choice(colors)
self.outline = 1
……



















