520到了,还被女朋友问送什么礼物吗?鲜花?口红?看电影?很俗的好不好,给你女朋友一个程序员的
Surprise
吧,来来来,让你用代码撩妹子。啥?没有女朋友?没有女朋友更应该看了,用它来表白不香嘛?
1、引言
什么什么?你女朋友不懂代码?没有编译环境?这叫事儿嘛,以下你看到的所有代码,我都给你打包成电脑一键运行的exe
程序,双击就完事儿。就问你女朋友喜不喜欢,文章末尾自取即可。
我还在每个文件夹中写了使用说明,你确定不要吗?尤其是最后一个,非常好看哦。
2、代码列表
浪漫玫瑰 浪漫玫瑰加爱心 你中有我,我中有你 浪漫小树 用女朋友照片,绘制心形 电脑弹窗表白 字符画-用字符画出来你女朋友(尤其是这个,我最喜欢了)
3、浪漫玫瑰
成品展示

源代码
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()
4、浪漫玫瑰加爱心
成品展示

源代码
import turtle
import time
# 爱心函数
def yellowheart(x, y, liftx):
turtle.pensize(3)
turtle.speed(10)
turtle.color("red", "red")
turtle.up()
turtle.goto(x, y)
turtle.down()
turtle.begin_fill()
turtle.left(liftx)
turtle.fd(80)
turtle.circle(-40, 180)
turtle.left(90)
turtle.circle(-40, 180)
turtle.left(0)
turtle.fd(80)
turtle.end_fill()
def rose():
turtle.speed(0) # 画笔移动的速度
# turtle.tracer(False)
# 设置初始位置
turtle.penup() # 提起画笔
turtle.left(90) # 逆时针转动画笔90度
turtle.fd(200)
turtle.pendown() # 放下画笔,移动画笔即开始绘制
turtle.right(90)
# 设置画笔的大小
turtle.pensize(2)
# 花蕊
turtle.fillcolor("red") # 填充颜色
turtle.begin_fill() # 开始填充
turtle.circle(10, 180)
turtle.circle(25, 110)
turtle.left(50)
turtle.circle(60, 45)
turtle.circle(20, 170)
turtle.right(24)
turtle.fd(30)
turtle.left(10)
turtle.circle(30, 110)
turtle.fd(20)
turtle.left(40)
turtle.circle(90, 70)
turtle.circle(30, 150)
turtle.right(30)
turtle.fd(15)
turtle.circle(80, 90)
turtle.left(15)
turtle.fd(45)
turtle.right(165)
turtle.fd(20)
turtle.left(155)
turtle.circle(150, 80)
turtle.left(50)
turtle.circle(150, 90)
turtle.end_fill() # 结束填充
# 右侧花瓣
turtle.left(150)
turtle.circle(-90, 70)
turtle.left(20)
turtle.circle(75, 105)
turtle.setheading(60)
turtle.circle(80, 98)
turtle.circle(-90, 40)
# 左侧花瓣
turtle.left(180)
turtle.circle(90, 40)
turtle.circle(-80, 98)
turtle.setheading(-83)
# 左侧叶子
turtle.fd(30)
turtle.left(90)
turtle.fd(25)
turtle.left(45)
turtle.fillcolor("green")
turtle.begin_fill()
turtle.circle(-80, 90)
turtle.right(90)
turtle.circle(-80, 90)
turtle.end_fill()
turtle.right(135)
turtle.fd(60)
turtle.left(180)
turtle.fd(85)
turtle.left(90)
turtle.fd(80)
# 右侧叶子
turtle.right(90)
turtle.right(45)
turtle.fillcolor("green")
turtle.begin_fill()
turtle.circle(80, 90)
turtle.left(90)
turtle.circle(80, 90)
turtle.end_fill()
turtle.left(135)
turtle.fd(60)
turtle.left(180)
turtle.fd(60)
turtle.right(90)
turtle.circle(200, 50) # 画一个圆 200 是半径,50 是弧度
time.sleep(1)
# turtle.tracer(False)
# turtle.pensize(3)
# turtle.speed(0)
turtle.color("red", "red")
turtle.up()
turtle.goto(-230, 50)
turtle.down()
turtle.begin_fill()
turtle.left(180)
turtle.fd(80)
turtle.circle(-40, 180)
turtle.left(90)
turtle.circle(-40, 180)
turtle.left(0)
turtle.fd(80)
turtle.end_fill()
time.sleep(1)
# turtle.tracer(False)
# turtle.pensize(3)
# turtle.speed(0)
turtle.color("red", "red")
turtle.up()
turtle.goto(-230, -80)
turtle.down()
turtle.begin_fill()
turtle.left(-30)
turtle.fd(80)
turtle.circle(-40, 180)
turtle.left(90)
turtle.circle(-40, 180)
turtle.left(0)
turtle.fd(80)
turtle.end_fill()
time.sleep(1)
# turtle.tracer(False)
# turtle.pensize(3)
# turtle.speed(0)
turtle.color("red", "red")
turtle.up()
turtle.goto(-130, -180)
turtle.down()
turtle.begin_fill()
turtle.left(-80)
turtle.fd(80)
turtle.circle(-40, 180)
turtle.left(90)
turtle.circle(-40, 180)
turtle.left(0)
turtle.fd(80)
turtle.end_fill()
time.sleep(1)
# turtle.tracer(False)
# turtle.pensize(3)
# turtle.speed(0)
turtle.color("red", "red")
turtle.up()
turtle.goto(200, -200)
turtle.down()
turtle.begin_fill()
turtle.left(-90)
turtle.fd(80)
turtle.circle(-40, 180)
turtle.left(90)
turtle.circle(-40, 180)
turtle.left(0)
turtle.fd(80)
turtle.end_fill()
time.sleep(1)
# turtle.tracer(False)
# turtle.pensize(3)
# turtle.speed(0)
turtle.color("red", "red")
turtle.up()
turtle.goto(200, 50)
turtle.down()
turtle.begin_fill()
turtle.left(90)
turtle.fd(80)
turtle.circle(-40, 180)
turtle.left(90)
turtle.circle(-40, 180)
turtle.left(0)
turtle.fd(80)
turtle.end_fill()
def figure1():
turtle.reset()
turtle.tracer(False)
rose()
yellowheart(-230, 50, 180) # 左一
# time.sleep(2)
def figure2():
# turtle.reset()
turtle.tracer(False)
rose()
yellowheart(-230, -80, -30) # 左二
# time.sleep(2)
def figure3():
turtle.reset()
turtle.tracer(False)
rose()
yellowheart(-130, -180, -30) # 左三
# time.sleep(2)
def figure4():
turtle.reset()
turtle.tracer(False)
rose()
yellowheart(200, 50, 90) # 右一
# ime.sleep(2)
def figure5():
turtle.reset()
turtle.tracer(False)
rose()
yellowheart(200, -200, -90) # 右二
# time.sleep(2)
if __name__ == "__main__":
rose()
# figure1()
#
# yellowheart(-230, -80, -30) # 左二
# 不让自动退出,放在程序的最后一行
# 不然画画结束后会自动退出
turtle.done()
5、你中有我,我中有你
成品展示

源代码
from turtle import *
def go_to(x, y):
up()
goto(x, y)
down()
def small_Circle(size): # 函数用于绘制心的小圆
speed(10)
for i in range(210):
forward(size)
right(0.786)
def big_Circle(size): # 函数用于绘制心的大圆
speed(10)
for i in range(150):
forward(size)
right(0.3)
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 main():
pensize(2)
color('red', 'pink')
getscreen().tracer(1, 0)
heart(100, 0, 0.7)
go_to(80, 70)
write("官人", font=("楷体", 18, "normal"))
setheading(0)
heart(-80, -100, 1)
go_to(-110, 15)
write("娘子", font=("宋体", 20, "normal"))
go_to(40, -80)
write("三生三世皆是你!", move=True, align="left", font=("arial", 22, "italic"))
done()
main()
6、浪漫小树
成品展示

源代码
import turtle as T
import random
import time
# 画樱花的躯干(60,t)
def Tree(branch, t):
time.sleep(0.0005)
if branch > 3:
if 8 <= branch <= 12:
if random.randint(0, 2) == 0:
t.color('snow') # 白
else:
t.color('lightcoral') # 淡珊瑚色
t.pensize(branch / 3)
elif branch < 8:
if random.randint(0, 1) == 0:
t.color('snow')
else:
t.color('lightcoral') # 淡珊瑚色
t.pensize(branch / 2)
else:
t.color('sienna') # 赭(zhě)色
t.pensize(branch / 10) # 6
t.forward(branch)
a = 1.5 * random.random()
t.right(20 * a)
b = 1.5 * random.random()
Tree(branch - 10 * b, t)
t.left(40 * a)
Tree(branch - 10 * b, t)
t.right(20 * a)
t.up()
t.backward(branch)
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)
# 绘图区域
t = T.Turtle()
# 画布大小
w = T.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()
7、用女朋友照片,绘制心形
成品展示
PS:我是每个照片放了三份,所以每个一样的图出现了三次,你要放置不一样的图片,就不会出现该问题了。

源代码
from PIL import Image
import os
map = [
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1],
[1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1],
[1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1],
[1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1],
[1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1],
[1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
]
# 这个是我图片的所在路径
img_dir = "photo"
imgs = os.listdir(img_dir)
img_h = img_w = 192
rows = len(map)
columns = len(map[0])
figure = Image.new("RGB", (img_w * columns, img_h * rows), "white")
count = 0
for i in range(len(map)):
for j in range(len(map[i])):
if map[i][j] == 1:
continue
else:
try:
image = Image.open(os.path.join(img_dir, imgs[count]))
except:
continue
image = image.resize((img_w, img_h))
figure.paste(image, (img_w * j, img_h * i))
count += 1
figure.show()
figure.save('心型照片墙.png')
8、电脑弹框表白
成品展示

源代码
import tkinter as tk
import random
import threading
import time
def dow():
window = tk.Tk()
width = window.winfo_screenwidth()
height = window.winfo_screenheight()
a = random.randrange(0, width)
b = random.randrange(0, height)
window.title('520快乐')
window.geometry("200x50" + "+" + str(a) + "+" + str(b))
tk.Label(window,
text='520快乐!爱你幺',
bg='Red', # 背景颜色
font=('楷体', 17),
width=15, height=2
).pack()
window.mainloop()
threads = []
for i in range(30): # 需要的弹框数量,别写太多,容易电脑卡死哦
t = threading.Thread(target=dow)
threads.append(t)
time.sleep(0.1)
threads[i].start()
9、字符画-用字画你女朋友
成品展示
原图:

渲染之后的图:

源代码
from PIL import Image, ImageDraw, ImageFont
import cv2
def draw(pic, draw_text):
img = cv2.imread(pic)
blank = Image.new("RGB", [img.shape[1], img.shape[0]], "white")
drawObj = ImageDraw.Draw(blank)
n = 10
m = 9
font = ImageFont.truetype(r'C:\Windows\Fonts\msyh.ttc', size=m)
for i in range(0, img.shape[0], n):
for j in range(0, img.shape[1], n):
drawObj.text([j, i], draw_text[int(j / n) % len(draw_text)],
fill=(img[i][j][2], img[i][j][1], img[i][j][0]), font=font)
blank.save('img_' + pic)
draw('test.png', "我爱你")
怎么样,还不赶紧给你女朋友惊喜去。
公众号(运维家)后台回复(520表白),即可获取打包成exe格式的成品代码了。

往期推荐
文章转载自运维家,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




