首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Python浪漫520表白代码

  • 25-02-22 09:00
  • 2147
  • 8581
blog.csdn.net

系列文章

序号文章目录直达链接
1浪漫520表白代码http://iyenn.com/rec/1677773.html
2满屏表白代码http://iyenn.com/rec/1676512.html
3跳动的爱心http://iyenn.com/rec/1677774.html
4漂浮爱心http://iyenn.com/rec/1677775.html
5爱心光波http://iyenn.com/rec/1677776.html
6流星雨http://iyenn.com/rec/1677777.html
7满天星http://iyenn.com/rec/1677778.html
8烟花秀http://iyenn.com/rec/1677779.html
9圣诞树http://iyenn.com/rec/1677780.html
10雪花代码http://iyenn.com/rec/1677781.html
11模拟星空http://iyenn.com/rec/1677782.html
12生日蛋糕http://iyenn.com/rec/1677783.html
13樱花树http://iyenn.com/rec/1677784.html
14五彩气球http://iyenn.com/rec/1677785.html
15七彩花朵http://iyenn.com/rec/1677786.html
16恶搞代码http://iyenn.com/rec/1677787.html

目录

系列文章

前言

表白界面

跳动的爱心

漂浮的爱心

满屏表白代码


前言

520是每年的5月20日,因数字“520”与“我爱你”发音相似而被许多年轻人用作表达爱意的节日。这个节日起源于中国互联网文化,逐渐传递到其他国家和地区。在这一天,情侣们通常会互送礼物、发表情、或者举行浪漫的活动来庆祝爱情。快来领取专属于程序员的浪漫吧!

表白界面

让人无法拒绝的表白界面!

程序设计 

  1. import tkinter as tk
  2. import tkinter.messagebox
  3. root = tk.Tk()
  4. root.title('❤')
  5. root.resizable(0, 0)
  6. root.wm_attributes("-toolwindow", 1)
  7. screenwidth = root.winfo_screenwidth()
  8. screenheight = root.winfo_screenheight()
  9. widths = 300
  10. heights = 100
  11. x = (screenwidth - widths) / 2
  12. y = (screenheight - heights) / 2
  13. root.geometry('%dx%d+%d+%d' % (widths, heights, x, y)) # 设置在屏幕中居中显示
  14. tk.Label(root, text='亲爱的,做我女朋友好吗?', width=37, font=('宋体', 12)).place(x=0, y=10)
  15. def OK(): # 同意按钮
  16. root.destroy()
  17. # 同意后显示漂浮爱心
  18. def NO(): # 拒绝按钮,拒绝不会退出,必须同意才可以退出哦~
  19. tk.messagebox.showwarning('❤', '再给你一次机会!')
  20. def closeWindow():
  21. tk.messagebox.showwarning('❤', '逃避是没有用的哦')
  22. tk.Button(root, text='好哦', width=5, height=1, command=OK).place(x=80, y=50)
  23. tk.Button(root, text='不要', width=5, height=1, command=NO).place(x=160, y=50)
  24. root.protocol('WM_DELETE_WINDOW', closeWindow) # 绑定退出事件
  25. root.mainloop()

这段代码使用了Python的Tkinter库来创建GUI界面。在这个程序中,主要有几个组件,如下:

  1. tk.Tk():创建一个主窗口;

  2. root.title():设置窗口的标题,这里设置为’❤’;

  3. root.resizable(0,0):设置窗口大小不可调整,即禁止用户手动调整窗口大小;

  4. root.wm_attributes(“-toolwindow”, 1):设置窗口为工具窗口,即没有最大化、最小化和关闭按钮;

  5. root.geometry():设置窗口的尺寸和位置,这里设置为在屏幕中居中显示;

  6. tk.Label():创建一个标签,用于显示提示信息,这里显示的是“亲爱的,做我女朋友好吗?”;

  7. tk.Button():创建两个按钮,分别用于同意和拒绝,分别绑定了OK()和NO()两个函数;

  8. root.protocol():绑定退出事件,如果用户尝试直接关闭窗口,会弹出警告窗口提醒逃避是没有用的哦;

  9. root.mainloop():程序主循环,保持窗口不关闭。

总的来说,这是一个用Python的Tkinter库编写的表白程序,主要功能是显示一个窗口,问用户是否愿意成为自己的女朋友,提供了"好哦"和"不要"两个按钮让用户选择。如果用户选择同意,窗口会关闭,并且出现一个漂浮的爱心效果;如果用户选择不同意,会弹出警告窗口,提醒再给一次机会。同时,如果用户尝试直接关闭这个窗口,也会弹出警告窗口提醒逃避是没有用的哦。 

跳动的爱心

去年爆火的跳动的爱心!

主要的爱心类 

  1. class Heart:
  2. def __init__(self, generate_frame=20):
  3. self._points = set() # 原始爱心坐标集合
  4. self._edge_diffusion_points = set() # 边缘扩散效果点坐标集合
  5. self._center_diffusion_points = set() # 中心扩散效果点坐标集合
  6. self.all_points = {} # 每帧动态点坐标
  7. self.build(2000)
  8. self.random_halo = 1000
  9. self.generate_frame = generate_frame
  10. for frame in range(generate_frame):
  11. self.calc(frame)
  12. def build(self, number):
  13. for _ in range(number):
  14. t = random.uniform(0, 2 * pi)
  15. x, y = heart_function(t)
  16. self._points.add((x, y))
  17. for _x, _y in list(self._points):
  18. for _ in range(3):
  19. x, y = scatter_inside(_x, _y, 0.05)
  20. self._edge_diffusion_points.add((x, y))
  21. point_list = list(self._points)
  22. for _ in range(4000):
  23. x, y = random.choice(point_list)
  24. x, y = scatter_inside(x, y, 0.17)
  25. self._center_diffusion_points.add((x, y))
  26. @staticmethod
  27. def calc_position(x, y, ratio):
  28. force = 1 / (((x - heartx) ** 2 + (y - hearty) ** 2) ** 0.520) # 魔法参数
  29. dx = ratio * force * (x - heartx) + random.randint(-1, 1)
  30. dy = ratio * force * (y - hearty) + random.randint(-1, 1)
  31. return x - dx, y - dy
  32. def calc(self, generate_frame):
  33. ratio = 10 * curve(generate_frame / 10 * pi) # 圆滑的周期的缩放比例
  34. halo_radius = int(4 + 6 * (1 + curve(generate_frame / 10 * pi)))
  35. halo_number = int(3000 + 4000 * abs(curve(generate_frame / 10 * pi) ** 2))
  36. all_points = []
  37. heart_halo_point = set()
  38. for _ in range(halo_number):
  39. t = random.uniform(0, 2 * pi)
  40. x, y = heart_function(t, shrink_ratio=11.6)
  41. x, y = shrink(x, y, halo_radius)
  42. if (x, y) not in heart_halo_point:
  43. heart_halo_point.add((x, y))
  44. x += random.randint(-14, 14)
  45. y += random.randint(-14, 14)
  46. size = random.choice((1, 2, 2))
  47. all_points.append((x, y, size))
  48. for x, y in self._points:
  49. x, y = self.calc_position(x, y, ratio)
  50. size = random.randint(1, 3)
  51. all_points.append((x, y, size))
  52. for x, y in self._edge_diffusion_points:
  53. x, y = self.calc_position(x, y, ratio)
  54. size = random.randint(1, 2)
  55. all_points.append((x, y, size))
  56. for x, y in self._center_diffusion_points:
  57. x, y = self.calc_position(x, y, ratio)
  58. size = random.randint(1, 2)
  59. all_points.append((x, y, size))
  60. self.all_points[generate_frame] = all_points
  61. def render(self, render_canvas, render_frame):
  62. for x, y, size in self.all_points[render_frame % self.generate_frame]:
  63. render_canvas.create_rectangle(x, y, x + size, y + size, width=0, fill=heartcolor)

 这部分代码主要是用来产生一个爱心的形状,并将这个爱心以一种缓慢流动的方式展示在屏幕上。这里使用了一个叫Heart的类来实现这个功能。具体来说,这个类包含以下几个方法:

1. __init__():在Heart类初始化时,产生了一些点来组成原始的爱心形状,并扩展出边缘和中心的爱心效果,最后存储在了_points、_edge_diffusion_points、_center_diffusion_points集合中,在__init__()中还使用了calc()方法,产生和存储了动态点坐标,作为后续展示的依据;

2. build():这个方法根据传进来的个数number,随机产生一个坐标点,并计算出由这个坐标点产生的散点点,边缘效果点和中心效果点,并将这些点加入到对应的集合中;

3. calc_position():这个方法用来计算动态效果的点的坐标,x和y是原始的爱心点坐标,ratio是一个缩放比例,用来控制点的运动速度和方向。具体实现方式是根据魔法参数(force)计算出坐标点偏移量(dx和dy),将原始坐标减去这个偏移量后得到新坐标;

4. calc():这个方法根据传进来的帧号(generate_frame),计算每个点运动后的坐标,位置的大小和数量等参数,产生all_points集合,用于后续窗口展示;

5. render():这个方法用于生成窗口显示的效果。根据传进来的画布render_canvas和帧号render_frame,获取动态点(all_points)并将每个点使用create_rectangle()方法在画布上呈现出来,构成了爱心的缓慢流动效果。

总的来说,这部分代码实现了爱心动态效果的核心方法,通过呈现散点、边缘效果点和中心效果点,利用计算动态点的坐标,通过缓慢变化的方式构成了耐人寻味的爱心效果展示。

漂浮的爱心

当然啦,漂浮的爱心也很美!

主要的爱心类 

  1. class Heart(): #每个爱心(爱心类)
  2. def __init__(self):
  3. self.r = ra.randint(10,15) #爱心的半径
  4. self.x = ra.randint(-1000,1000) #爱心的横坐标
  5. self.y = ra.randint(-500,500) #爱心的纵坐标
  6. self.f = ra.uniform(-3.14,3.14) #爱心左右移动呈正弦函数
  7. self.speed = ra.randint(5,10) #爱心移动速度
  8. self.color = ra.choice(colors) #爱心的颜色
  9. self.outline = 1 #爱心的外框大小(可不要)
  10. def move(self): #爱心移动函数
  11. if self.y <= 500: #当爱心还在画布中时
  12. self.y += self.speed #设置上下移动速度
  13. self.x += self.speed * math.sin(self.f) #设置左右移动速度
  14. self.f += 0.1 #可以理解成标志,改变左右移动的方向
  15. else: #当爱心漂出了画布时,重新生成一个爱心
  16. self.r = ra.randint(10,15)
  17. self.x = ra.randint(-1000,1000)
  18. self.y = -500
  19. self.f = ra.uniform(-3.14,3.14)
  20. self.speed = ra.randint(5,10)
  21. self.color = ra.choice(colors)
  22. self.outline = 1
  23. def draw(self): #画爱心函数,就是用turtle画爱心
  24. t.pensize(self.outline)
  25. t.penup()
  26. t.color(self.color)
  27. t.goto(self.x, self.y)
  28. t.pendown()
  29. t.begin_fill()
  30. t.fillcolor('pink')
  31. t.setheading(120)
  32. t.circle(self.r, 195)
  33. t.fd(self.r * 2.4)
  34. t.lt(90)
  35. t.fd(self.r * 2.4)
  36. t.circle(self.r, 195)
  37. t.end_fill()

这部分代码实现了每个爱心的移动和绘制。通过定义一个Heart类,初始化时随机生成一些参数(如半径、坐标、速度、颜色等),然后定义了移动( move() )和绘制 ( draw() )这两个方法来构造每个爱心在画布中的动态效果。

在 move() 方法中,首先判断爱心是否超出画布区域,如果超出了就重新生成一个爱心。如果没有超出,就按照自己的速度上下移动,以一定周期进行左右运动。

在 draw() 方法中,通过 Turtle 库绘制爱心的形状。其中,圆的部分是用 circle() 方法画的,线的部分是用 fd() 和 lt() 方法画的。同时也设置了爱心的颜色、外框大小、填充颜色等。

通过循环调用对每个Heart对象进行 move() 和 draw() 操作,整个屏幕就会动态地形成很多爱心的漂浮效果。通过每个爱心的属性差异化和运动轨迹的分散性,构成了一种比较多彩且富有动感的效果。

满屏表白代码

谁能拒绝满屏的表白代码呢!

主要的函数 

  1. def Love():
  2. root=tk.Tk()
  3. width=200
  4. height=50
  5. screenwidth=root.winfo_screenwidth()
  6. screenheight=root.winfo_screenheight()
  7. x=ra.randint(0,screenwidth)
  8. y=ra.randint(0,screenheight)
  9. root.title("❤")
  10. root.geometry("%dx%d+%d+%d"%(width,height,x,y))
  11. tk.Label(root,text='I LOVE YOU!',fg='white',bg='pink',font=("Comic Sans MS",15),width=30,height=5).pack()
  12. root.mainloop()
  13. def Heart():
  14. root=tk.Tk()
  15. screenwidth=root.winfo_screenwidth()
  16. screenheight=root.winfo_screenheight()
  17. width=600
  18. height=400
  19. x=(screenwidth-width)//2
  20. y=(screenheight-height)//2
  21. root.title("❤")
  22. root.geometry("%dx%d+%d+%d"%(screenwidth,screenheight,0,0))
  23. tk.Label(root,text='❤',fg='pink',bg='white',font=("Comic Sans MS",500),width=300,height=20).pack()
  24. root.mainloop()

这个程序中定义了两个函数 Love() 和 Heart(),实现了一种表达爱意的浪漫效果。

Love() 函数实现了一个弹出窗口,窗口标题为“❤”,窗口主体是一行字“ I LOVE YOU !”。字体颜色为白色,背景颜色为粉色。窗口的位置是随机生成的,大小固定为200x50。

Heart() 函数实现了一个屏保效果,整个屏幕上会出现一个非常大的红色爱心。窗口标题为“❤”,爱心的颜色为粉色,背景为白色。窗口大小是全屏幕大小,窗口的位置和左上角对齐,也就是从窗口左上角开始绘制爱心。

总的来说,这两个函数实现了一种简单而直白的表达爱意的浪漫效果,通过特定的界面设计和颜色搭配,让用户可以快速地向他人表达自己的感情。

文章知识点与官方知识档案匹配,可进一步学习相关知识
Python入门技能树首页概览335291 人正在系统学习中
Want595
微信公众号
获取源码丨商务合作丨交流讨论
注:本文转载自blog.csdn.net的Want595的文章"https://want595.blog.csdn.net/article/details/130666881"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top