世界这么大,你的那一个他肯定会出现,Python表白代码大集合(附上源码)

2,176 阅读4分钟

本文将利用Python画多种不同的表白图,附上源码,表白代码看这一篇文章就够啦,总有你喜欢的,喜欢的话别忘记三连了。

1、表白爱心

效果图:

在这里插入图片描述

参考代码:

# -*- coding:utf-8 -*-
import turtle
import time
 
 
# 画爱心的顶部
def LittleHeart():
    for i in range(200):
        turtle.right(1)
        turtle.forward(2)
 
 
# 输入表白的语句,默认I Love you
love = input('请输入表白语句,默认为输入为"I Love you": ')
# 输入署名或者赠谁,没有不执行
me = input('请输入您心上人的姓名或者昵称: ')
if love == '':
    love = 'I Love you'
# 窗口大小
turtle.setup(width=800, height=500)
# 颜色
turtle.color('red', 'pink')
# 笔粗细
turtle.pensize(5)
# 速度
turtle.speed(1)
# 提笔
turtle.up()
# 隐藏笔
turtle.hideturtle()
# 去到的坐标,窗口中心为0,0
turtle.goto(0, -180)
turtle.showturtle()
# 画上线
turtle.down()
turtle.speed(1)
turtle.begin_fill()
turtle.left(140)
turtle.forward(224)
# 调用画爱心左边的顶部
LittleHeart()
# 调用画爱右边的顶部
turtle.left(120)
LittleHeart()
# 画下线
turtle.forward(224)
turtle.end_fill()
turtle.pensize(5)
turtle.up()
turtle.hideturtle()
# 在心中写字 一次
turtle.goto(0, 0)
turtle.showturtle()
turtle.color('#CD5C5C', 'pink')
# 在心中写字 font可以设置字体自己电脑有的都可以设 align开始写字的位置
turtle.write(love, font=('gungsuh', 30,), align="center")
turtle.up()
turtle.hideturtle()
time.sleep(2)
# 在心中写字 二次
turtle.goto(0, 0)
turtle.showturtle()
turtle.color('red', 'pink')
turtle.write(love, font=('gungsuh', 30,), align="center")
turtle.up()
turtle.hideturtle()
# 写署名
if me != '':
    turtle.color('black', 'pink')
    time.sleep(2)
    turtle.goto(180, -180)
    turtle.showturtle()
    turtle.write(me, font=(20,), align="center", move=True)
 
# 点击窗口关闭
window = turtle.Screen()
window.exitonclick()

在这里插入图片描述

2、三维爱心

效果图:

在这里插入图片描述

首先安装matplotlib

参考代码:

#!/usr/bin/env python3
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as np
 
 
def heart_3d(x,y,z):
 return (x**2+(9/4)*y**2+z**2-1)**3-x**2*z**3-(9/80)*y**2*z**3
 
 
def plot_implicit(fn, bbox=(-1.5, 1.5)):
 ''' create a plot of an implicit function
 fn ...implicit function (plot where fn==0)
 bbox ..the x,y,and z limits of plotted interval'''
 xmin, xmax, ymin, ymax, zmin, zmax = bbox*3
 fig = plt.figure()
 ax = fig.add_subplot(111, projection='3d')
 A = np.linspace(xmin, xmax, 100) # resolution of the contour
 B = np.linspace(xmin, xmax, 40) # number of slices
 A1, A2 = np.meshgrid(A, A) # grid on which the contour is plotted
 
 for z in B: # plot contours in the XY plane
  X, Y = A1, A2
  Z = fn(X, Y, z)
  cset = ax.contour(X, Y, Z+z, [z], zdir='z', colors=('r',))
  # [z] defines the only level to plot
  # for this contour for this value of z
 
 for y in B: # plot contours in the XZ plane
  X, Z = A1, A2
  Y = fn(X, y, Z)
  cset = ax.contour(X, Y+y, Z, [y], zdir='y', colors=('red',))
 
 for x in B: # plot contours in the YZ plane
  Y, Z = A1, A2
  X = fn(x, Y, Z)
  cset = ax.contour(X+x, Y, Z, [x], zdir='x',colors=('red',))
 
 # must set plot limits because the contour will likely extend
 # way beyond the displayed level. Otherwise matplotlib extends the plot limits
 # to encompass all values in the contour.
 ax.set_zlim3d(zmin, zmax)
 ax.set_xlim3d(xmin, xmax)
 ax.set_ylim3d(ymin, ymax)
 
 plt.show()
 
if __name__ == '__main__':
 plot_implicit(heart_3d)

#!/usr/bin/env python3
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as np


def heart_3d(x,y,z):
 return (x**2+(9/4)*y**2+z**2-1)**3-x**2*z**3-(9/80)*y**2*z**3


def plot_implicit(fn, bbox=(-1.5, 1.5)):
 ''' create a plot of an implicit function
 fn ...implicit function (plot where fn==0)
 bbox ..the x,y,and z limits of plotted interval'''
 xmin, xmax, ymin, ymax, zmin, zmax = bbox*3
 fig = plt.figure()
 ax = fig.add_subplot(111, projection='3d')
 A = np.linspace(xmin, xmax, 100) # resolution of the contour
 B = np.linspace(xmin, xmax, 40) # number of slices
 A1, A2 = np.meshgrid(A, A) # grid on which the contour is plotted

 for z in B: # plot contours in the XY plane
  X, Y = A1, A2
  Z = fn(X, Y, z)
  cset = ax.contour(X, Y, Z+z, [z], zdir='z', colors=('r',))
  # [z] defines the only level to plot
  # for this contour for this value of z

 for y in B: # plot contours in the XZ plane
  X, Z = A1, A2
  Y = fn(X, y, Z)
  cset = ax.contour(X, Y+y, Z, [y], zdir='y', colors=('red',))

 for x in B: # plot contours in the YZ plane
  Y, Z = A1, A2
  X = fn(x, Y, Z)
  cset = ax.contour(X+x, Y, Z, [x], zdir='x',colors=('red',))

 # must set plot limits because the contour will likely extend
 # way beyond the displayed level. Otherwise matplotlib extends the plot limits
 # to encompass all values in the contour.
 ax.set_zlim3d(zmin, zmax)
 ax.set_xlim3d(xmin, xmax)
 ax.set_ylim3d(ymin, ymax)

 plt.show()

if __name__ == '__main__':
 plot_implicit(heart_3d) 

3、红色爱心

效果图:

在这里插入图片描述

参考代码:

import turtle
 
turtle.bgcolor("black")
turtle.pensize(2)
sizeh = 1.2
 
 
def curve():
  for ii in range(200):
    turtle.right(1)
    turtle.forward(1 * sizeh)
 
 
turtle.speed(0)
turtle.color("red", "red")
turtle.begin_fill()
turtle.left(140)
turtle.forward(111.65 * sizeh)
curve()
turtle.left(120)
curve()
turtle.forward(111.65 * sizeh)
turtle.end_fill()
turtle.hideturtle()

4、Love字体爱心

效果图:

在这里插入图片描述

参考代码:

import time
words = input('请输出想要表达的文字:')
#例子:words = "Dear lili, Happy Valentine's Day! Lyon Will Always Love You Till The End! ♥ Forever! ♥"
for item in words.split():
 #要想实现打印出字符间的空格效果,此处添加:item = item+' '
 letterlist = []#letterlist是所有打印字符的总list,里面包含y条子列表list_X
 for y in range(12, -12, -1):
  list_X = []#list_X是X轴上的打印字符列表,里面装着一个String类的letters
  letters = ''#letters即为list_X内的字符串,实际是本行要打印的所有字符
  for x in range(-30, 30):#*是乘法,**是幂次方
   expression = ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3
   if expression <= 0:
    letters += item[(x-y) % len(item)]
   else:
    letters += ' '
  list_X.append(letters)
  letterlist += list_X
 print('\n'.join(letterlist))
 time.sleep(1.5);

但是,有点太单调了点,来,将代码简单改造一下,实现动态输出心形的,代码如下:

import time
words = input('请输出想要表达的文字:')
for item in words.split():
  print('\n'.join([''.join([(item[(x-y) % len(item)] if ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3 <= 0 else ' ') for x in range(-30, 30)]) for y in range(12, -12, -1)]))
  time.sleep(1.5)

5、心连心

在这里插入图片描述

from turtle import*
color ("black","red")
pensize(5)
begin_fill()
penup()
goto(50,50)
pendown()
right(45)
goto(100,0)
left(90)
fd(120)
circle(50,225)
penup()
goto(0,0)
pendown()
left(135)
fd(120)
circle(50,225)
seth(90)
circle(50,225)
fd(121)
end_fill()
left(56)
penup()
goto(-210,40)
pendown()
goto(0,80)
penup()
goto(160,110)
pendown()
goto(320,140)
done()

6、火柴人爱心

效果图:

在这里插入图片描述

参考代码:

#2.14
from turtle import *
from time import sleep
  
def go_to(x, y):
  up()
  goto(x, y)
  down()
  
def head(x,y,r):
  go_to(x,y)
  speed(1)
  circle(r)
  leg(x,y)
  
def leg(x,y):
  
  right(90)
  forward(180)
  right(30)
  forward(100)
  left(120)
  go_to(x,y-180)
  forward(100)
  right(120)
  forward(100)
  left(120)
  hand(x,y)
  
  
def hand(x,y):
  go_to(x,y-60)
  forward(100)
  left(60)
  forward(100)
  go_to(x, y - 90)
  right(60)
  forward(100)
  right(60)
  forward(100)
  left(60)
  eye(x,y)
  
def eye(x,y):
  go_to(x-50,y+130)
  right(90)
  forward(50)
  go_to(x+40,y+130)
  forward(50)
  left(90)
  
  
def big_Circle(size):
  speed(20)
  for i in range(150):
    forward(size)
    right(0.3)
def line(size):
  speed(1)
  forward(51*size)
  
def small_Circle(size):
  speed(10)
  for i in range(210):
    forward(size)
    right(0.786)
  
  
  
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 main():
  pensize(2)
  color('red', 'pink')
  head(-120, 100, 100)
  heart(250, -80, 1)
  go_to(200, -300)
  write("To: 智慧与美貌并存的", move=True, align="left", font=("楷体", 20, "normal"))
  done()
  
main()

7、玫瑰花

效果图

在这里插入图片描述

参考代码

from turtle import *
import time
 
setup(1000,800,0,0)
speed(0)
penup()
seth(90)
fd(340)
seth(0)
pendown()
 
speed(5)
begin_fill()
fillcolor('red')
circle(50,30)
 
for i in range(10):
    fd(1)
    left(10)
 
circle(40,40)
 
for i in range(6):
    fd(1)
    left(3)
 
circle(80,40)
 
for i in range(20):
    fd(0.5)
    left(5)
 
circle(80,45)
 
for i in range(10):
    fd(2)
    left(1)
 
circle(80,25)
 
for i in range(20):
    fd(1)
    left(4)
 
circle(50,50)
 
time.sleep(0.1)
 
circle(120,55)
 
speed(0)
 
seth(-90)
fd(70)
 
right(150)
fd(20)
 
left(140)
circle(140,90)
 
left(30)
circle(160,100)
 
left(130)
fd(25)
 
penup()
right(150)
circle(40,80)
pendown()
 
left(115)
fd(60)
 
penup()
left(180)
fd(60)
pendown()
 
end_fill()
 
right(120)
circle(-50,50)
circle(-20,90)
 
speed(1)
fd(75)
 
speed(0)
circle(90,110)
 
penup()
left(162)
fd(185)
left(170)
pendown()
circle(200,10)
circle(100,40)
circle(-52,115)
left(20)
circle(100,20)
circle(300,20)
speed(1)
fd(250)
 
penup()
speed(0)
left(180)
fd(250)
circle(-300,7)
right(80)
circle(200,5)
pendown()
 
left(60)
begin_fill()
fillcolor('green')
circle(-80,100)
right(90)
fd(10)
left(20)
circle(-63,127)
end_fill()
 
penup()
left(50)
fd(20)
left(180)
 
pendown()
circle(200,25)
 
penup()
right(150)
 
fd(180)
 
right(40)
pendown()
begin_fill()
fillcolor('green')
circle(-100,80)
right(150)
fd(10)
left(60)
circle(-80,98)
end_fill()
 
penup()
left(60)
fd(13)
left(180)
 
pendown()
speed(1)
circle(-200,23)
 
exitonclick()

8、简单爱心

效果图:

在这里插入图片描述

参考代码:

#!/usr/bin/env python
 
# -*- coding:utf-8 -*- 
 
import turtle
import time
 
# 画心形圆弧
 
def hart_arc():
 
 for i in range(200):
 
  turtle.right(1)
 
  turtle.forward(2)
 
  
def move_pen_position(x, y):
 
 turtle.hideturtle()  # 隐藏画笔(先)
 
 turtle.up()  # 提笔
 
 turtle.goto(x, y) # 移动画笔到指定起始坐标(窗口中心为0,0)
 
 turtle.down() # 下笔
 
 turtle.showturtle()  # 显示画笔
  
 
# 初始化
 
turtle.setup(width=800, height=500)  # 窗口(画布)大小
 
turtle.color('red', 'pink')  # 画笔颜色
 
turtle.pensize(3)  # 画笔粗细
 
turtle.speed(1)  # 描绘速度
 
# 初始化画笔起始坐标
 
move_pen_position(x=0,y=-180) # 移动画笔位置
 
turtle.left(140) # 向左旋转140度
  
turtle.begin_fill()  # 标记背景填充位置
  
# 画心形直线( 左下方 )
turtle.forward(224) # 向前移动画笔,长度为224
 
# 画爱心圆弧
 
hart_arc()  # 左侧圆弧
turtle.left(120) # 调整画笔角度
hart_arc()  # 右侧圆弧
 
# 画心形直线( 右下方 )
 
turtle.forward(224)
 
turtle.end_fill()  # 标记背景填充结束位置
 
# 点击窗口关闭程序
 
window = turtle.Screen()
 
window.exitonclick()

9、一箭双心

效果图:

在这里插入图片描述

参考代码:

from turtle import *
from time import sleep
  
def go_to(x, y):
  up()
  goto(x, y)
  down()
  
  
def big_Circle(size): #函数用于绘制心的大圆
  speed(1)
  for i in range(150):
    forward(size)
    right(0.3)
  
def small_Circle(size): #函数用于绘制心的小圆
  speed(1)
  for i in range(210):
    forward(size)
    right(0.786)
  
def line(size):
  speed(1)
  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(1)
  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("author:520Python", move=True, align="left", font=("宋体", 30, "normal"))
  done()
  
main()

在这里插入图片描述

Python小游戏源码,画皮卡丘,哆啦A梦等源码分享点击领取.福利多多

①行业咨询、大佬在线解答 ②Python开发环境安装教程 ③Python400集自学视频 ④游戏源码分享 ⑤Python学习路线图 ⑥300多本Python电子书