点击蓝字,关注我们
“初次见面的时候,没想到会这样爱你”
写在前面
c语言满屏飘字表白代码都有了,python当然也不能落后啦,小编熬夜码字,给大家用python又敲了一个表白代码,小伙伴们更喜欢c语言的还是python的呢?一起来看看吧~
Turtle入门
Python的Turtle是一个库,它允许用户以图形方式来绘制形状和图案。它的名字来自于一个类似于turtle的机器人,它可以在不同的方向上移动并在其路径上留下痕迹。在本文中,我们将学习如何使用Turtle库,以及它的一些入门函数。在开始之前,需要先导入Turtle库。可以使用以下代码来完成:
import turtle
接下来,我们可以开始使用一些入门函数,例如:
turtle.forward(distance)
这个函数将会向前移动机器人一定距离。距离是作为函数的参数来提供的。例如,以下代码将会向前移动50个像素:
turtle.forward(50)
turtle.right(angle)
这个函数使机器人向右旋转一定角度。角度是作为函数的参数来提供的。例如,以下代码将会向右旋转90度:
turtle.right(90)
turtle.left(angle)
这个函数使机器人向左旋转一定角度。角度是作为函数的参数来提供的。例如,以下代码将会向左旋转90度:
turtle.left(90)
turtle.penup()
这个函数将会关闭机器人的笔。移动机器人时不会留下痕迹。例如,以下代码将会关闭画笔:
turtle.penup()
turtle.pendown()
这个函数将会打开机器人的笔。移动机器人时会留下痕迹。例如,以下代码将会打开画笔:
turtle.pendown()
turtle.color(color_name)
这个函数将会更改机器人画笔的颜色。颜色名称是作为函数的参数来提供的。例如,以下代码将会将画笔颜色更改为红色:
turtle.color("red")
turtle.pensize(size)
这个函数将会更改机器人画笔的大小。大小是作为函数的参数来提供的。例如,以下代码将会将画笔大小更改为2:
turtle.pensize(2)
turtle.begin_fill()
这个函数将会开始填充机器人绘制的形状。例如,以下代码将会开始填充形状:
turtle.begin\_fill()
turtle.end_fill()
这个函数将会结束填充机器人绘制的形状。例如,以下代码将会结束填充形状:
turtle.end\_fill()
turtle.circle(radius)
这个函数将会绘制一个圆形。半径是作为函数的参数来提供的。例如,以下代码将会绘制一个半径为50像素的圆形:
turtle.circle(50)
turtle.goto(x, y)
这个函数将会移动机器人到一个特定的坐标。x和y是作为函数的参数来提供的。例如,以下代码将会将机器人移动到(100, 100)的坐标:
turtle.goto(100, 100)
这些入门函数仅仅是Turtle库中的一小部分。通过这些函数,你已经可以开始绘制简单的形状和图案了。
满屏飘字
环境搭建
关于运行Python代码的方法以及遇到问题的解决方案(计算机小白篇)
完整程序
import turtle as tu
import random as ra
import tkinter as tk
import math
def Main():
tu.setup(1.0, 1.0)
tu.screensize(1.0, 1.0) #设置画布大小
tu.bgcolor('black') #设置画布颜色
tu.title("❤")
t = tu.Pen()
t.ht() #隐藏画笔
words = ["我爱你",
"I Love You!",
"永远爱你",
"你是我年少的欢喜",
"一生一世一双人",
"余生我陪你走",
"陪你到来生",
"春风十里不如你",
"三生有幸来日方长",
"夜很长幸有你",
"爱你的全部",
"踏过八荒四海只为你",
"愿得一人心",
"众里寻他千百度",
"顶峰相见",
"等你下课",
"往后余生",
"Missing You!",
"做我女朋友好么",
"你已经在我的未来里了",
"陪你到世界之巅",
"白头偕老",
"我喜欢你",
"好想好想你",
"想你想你想你",
"今夜月色真美",
"你是我的唯一"
]
class Love(): #文案类
def __init__(self):
self.x = ra.randint(-1000,1000) #文案的横坐标
self.y = ra.randint(-500,500) #文案的纵坐标
self.f = ra.uniform(-3,3) #文案左右移动
self.speed = ra.uniform(2,5) #文案移动速度
self.word = ra.choice(words) # 文案
self.color = "#%02x%02x%02x" % (ra.randint(0,255),ra.randint(0,255),ra.randint(0,255)) #文案的颜色
def draw(self): #写每个文案
t.penup() #提笔
t.goto(self.x,self.y) #随机位置
t.pendown() #落笔
t.color(self.color) #文案颜色
t.write(self.word,, font=("Comic Sans MS", 24, "bold"))
def move(self): #文案移动函数
if self.y <= 500: #当文案还在画布中时
self.y += self.speed #设置上下移动速度
self.x -= self.speed * math.sin(self.f) #设置左右移动速度
else: #当文案漂出了画布时,重新生成一个文案
self.x = ra.randint(-1000,1000)
self.y = -500
self.f = ra.uniform(-3.14, 3.14) # 文案左右移动呈正弦函数
self.speed = ra.uniform(2, 5) # 文案移动速度
self.word = ra.choice(words) # 文案
self.color = "#%02x%02x%02x" % (ra.randint(0, 255), ra.randint(0, 255), ra.randint(0, 255)) # 文案的颜色
class Ball(): #彩球类
def __init__(self):
self.r = ra.uniform(2,5) #彩球的半径
self.x = ra.randint(-1000,1000) #彩球的横坐标
self.y = ra.randint(-500,500) #彩球的纵坐标
self.speed = ra.uniform(2,10) #彩球移动速度
self.color = "#%02x%02x%02x" % (ra.randint(0,255),ra.randint(0,255),ra.randint(0,255)) #彩球的颜色
self.outline = 10 #彩球的大小
def draw(self): #画每个彩球
x=self.r #彩球的半径
t.pensize(self.outline) #彩球的大小
t.penup() #提笔
t.goto(self.x,self.y) #随机位置
t.pendown() #落笔
t.color(self.color) #彩球颜色
t.begin_fill()
t.fillcolor(self.color)
t.circle(x)
def move(self): #彩球移动函数
if self.y >= -500: #当彩球还在画布中时
self.y -= self.speed #设置上下移动速度
else: #当彩球漂出了画布时,重新生成一个彩球
self.r = ra.uniform(2,3)
self.x = ra.randint(-1000,1000)
self.y = 500
self.speed = ra.uniform(2,10)
self.color = "#%02x%02x%02x" % (ra.randint(0,255),ra.randint(0,255),ra.randint(0,255))
self.outline = 10
Loves = [] #用列表保存所有文案
for i in range(595):
Loves.append(Love())
Loves.append(Ball())
Loves.append(Ball())
while True: #开始绘制
tu.tracer(0)
t.clear()
for i in range(199): #66个漂浮的文案
Loves[i].move()
Loves[i].draw()
tu.update()
tu.mainloop()
# 主函数
if __name__ == '__main__':
root = tk.Tk()
root.title('❤')
root.resizable(0, 0)
screenwidth = root.winfo_screenwidth()
screenheight = root.winfo_screenheight()
widths = 300
heights = 100
x = (screenwidth - widths) / 2
y = (screenheight - heights) / 2 - 66
root.geometry('%dx%d+%d+%d' % (widths, heights, x, y)) # 设置在屏幕中居中显示
tk.Label(root, text='亲爱的,做我女朋友好吗?', width=37, font=('宋体', 12)).place(x=0, y=10)
def OK(): # 同意按钮
root.destroy()
Main() # 同意后显示跳动爱心
def NO(): # 拒绝按钮,拒绝不会退出,必须同意才可以退出哦~
tk.messagebox.showwarning('❤', '再给你一次机会!')
def closeWindow():
tk.messagebox.showwarning('❤', '逃避是没有用的哦')
tk.Button(root, text='好哦', width=5, height=1, command=OK).place(x=80, y=50)
tk.Button(root, text='不要', width=5, height=1, command=NO).place(x=160, y=50)
root.protocol('WM_DELETE_WINDOW', closeWindow) # 绑定退出事件
root.mainloop()
具体分析
本程序的功能是显示跳动的爱心和漂浮的表白语。运行程序后,首先会弹出一个窗口,询问用户是否愿意成为程序作者的女朋友。用户可以选择同意或者拒绝。如果用户选择同意,则会弹出一个新的窗口,显示跳动的爱心和漂浮的表白语;如果用户选择拒绝,则会给予用户再次选择的机会。如果用户想要退出程序,则可以点击窗口右上角的关闭按钮。
程序的实现思路如下:
导入所需要的模块,包括turtle、random和tkinter模块;
定义一个Love类和一个Ball类,其中Love类表示漂浮的表白语,Ball类表示漂浮的彩球;
在Love类中,定义文案的移动函数和绘制函数,其中移动函数用于控制文案上下左右移动,绘制函数用于在画布上绘制文案;
在Ball类中,定义彩球的移动函数和绘制函数,其中移动函数用于控制彩球上下移动,绘制函数用于在画布上绘制彩球;
定义一个Main函数,用于绘制跳动的爱心和漂浮的表白语。在Main函数中,首先设置画布的大小和背景颜色,然后定义一个含有595个元素的列表,其中每个元素都是一个Love对象或者一个Ball对象,表示漂浮的表白语和彩球。接着,在一个无限循环中,每次依次移动和绘制每个元素,然后更新画布;
最后,定义一个窗口,用于询问用户是否愿意成为程序作者的女朋友。如果用户同意,则调用Main函数显示跳动的爱心和漂浮的表白语;如果用户拒绝,则弹出一个提示框,再次询问用户是否愿意成为程序作者的女朋友。
总之,本程序实现了一个非常浪漫的场景,用跳动的爱心和漂浮的表白语向爱人表达爱意,可以用于情人节或者其他节日的礼物。
系列文章
…… Python百宝箱
**写在后面
**
我是一只有趣的兔子,感谢你的喜欢!
