目录
一、浪漫玫瑰花
二、浪漫玫瑰加爱心
三、心心相印
四、粉嫩爱心
五、丘比特一键穿心
六、发射爱心小人
七、浪漫动态樱花树
八、专属心形词云
九、女朋友画像字符画
Hello,你好呀,我是灰小猿,一个超会写bug的程序猿!
话说眨眼间...18、19、**、21...,哦?中间忘掉了什么?仔细一看,原来是5.20。
没错,一年一度的5.20又双叒叕来了。
不会吧?不会吧?不会真的还有程序猿没有女朋友吧?
快给我new一个!
所以作为程序猿的你这个5.20准备好怎么用代码感动哭你的女朋友了嘛?
什么?还没有准备礼物?
没事,我已经为你准备好了Python花式表白代码!拿走不谢!
实现代码:
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()
什么?只有玫瑰花太单调?那再给你来几个爱心够不够?
实现代码:
import turtle
import time
import random
# 爱心函数
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()
coding:utf-8
实现代码:
from turtle import *
from time import sleep
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()
实现代码:
'''不正经爱心'''
#coding=utf-8
import turtle
import time
def draw_circle():
for i in range(400):
turtle.right(0.5)
turtle.forward(1)
def draw_love():
# turtle.color('red','darkred')
# turtle.pensize(1)
turtle.pen(fillcolor="pink", pencolor="red", pensize=8)
turtle.speed(2000)
turtle.goto(0, 0)
turtle.begin_fill()
turtle.left(140)
turtle.forward(224)
draw_circle()
turtle.left(120)
draw_circle()
turtle.forward(224)
turtle.end_fill()
turtle.write("I Love you")
time.sleep(2)
turtle.up()
turtle.goto(150, 20)
turtle.color('black')
turtle.write('纵然万劫不复,纵然相思入骨,我待你依旧如初!', font=("微软雅黑", 18, "normal"))
time.sleep(2)
def draw_abc():
turtle.fillcolor("pink")
turtle.pencolor("red")
turtle.pensize(10)
turtle.speed(1)
turtle.up()
turtle.goto(0, -50)
turtle.down()
turtle.begin_fill()
turtle.circle(45)
turtle.end_fill()
time.sleep(2)
def word():
turtle.up()
turtle.goto(-100, 200)
turtle.color("red")
turtle.pensize(4)
# turtle.down()
turtle.write('宝贝,5.20快乐!', font=("隶书", 18, "bold"))
time.sleep(10)
draw_love()
draw_abc()
word()
程序代码:
import turtle as t
t.color('red','pink')
t.begin_fill()
t.width(5)
t.left(135)
t.fd(100)
t.right(180)
t.circle(50,-180)
t.left(90)
t.circle(50,-180)
t.right(180)
t.fd(100)
t.pu()
t.goto(50,-30)
t.pd()
t.right(90)
t.fd(100)
t.right(180)
t.circle(50,-180)
t.left(90)
t.circle(50,-180)
t.right(180)
t.fd(100)
t.end_fill()
t.hideturtle()
t.pu()
t.goto(250,-70)
t.pd()
t.color('black')
t.width(5)
t.left(70)
t.fd(50)
t.fd(-50)
t.left(70)
t.fd(50)
t.fd(-50)
t.left(145)
t.fd(20)
t.left(145)
t.fd(50)
t.fd(-50)
t.left(70)
t.fd(50)
t.fd(-50)
t.left(145)
t.fd(20)
t.left(145)
t.fd(50)
t.fd(-50)
t.left(70)
t.fd(50)
t.fd(-50)
t.left(145)
t.width(3)
t.fd(220)
t.right(90)
t.pu()
t.fd(10)
t.pd()
t.left(90)
t.circle(10,180)
t.circle(10,-90)
t.right(90)
t.fd(-10)
t.pu()
t.fd(90)
t.left(90)
t.fd(10)
t.left(90)
t.pd()
t.circle(10,180)
t.circle(10,-90)
t.left(90)
t.fd(100)
t.begin_fill()
t.left(30)
t.fd(15)
t.right(35)
t.fd(50)
t.right(150)
t.fd(50)
t.right(62)
t.fd(25)
t.end_fill()
t.done()
实现代码:
# 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()
实现代码:
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()
实现代码:
from wordcloud import WordCloud
import PIL.Image as image
import numpy as np
import jieba
# 分词
def trans_CN(text):
# 接收分词的字符串
word_list = jieba.cut(text)
# 分词后在单独个体之间加上空格
result = " ".join(word_list)
return result
# 要读取的txt文本
with open("love.txt", encoding="utf-8") as fp:
text = fp.read()
# print(text)
# 将读取的中文文档进行分词
text = trans_CN(text)
mask = np.array(image.open("love.png")) #添加心形图片
wordcloud = WordCloud(
# 添加遮罩层
mask=mask,
# 生成中文字的字体,必须要加,不然看不到中文
font_path="C:\Windows\Fonts\STXINGKA.TTF"
).generate(text)
image_produce = wordcloud.to_image()
image_produce.show()
实现代码:
#-*- coding=utf-8 -*-
from PIL import Image
IMG = 'ym.jpg' #设置图片文件
WIDTH = 150 #设置字符画的宽
HEIGHT = 80 #设置字符画的高
OUTPUT = 'ym.txt' #设置存放字符画的文本文件
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ") #设置显示的字符集
#将256灰度映射到70个字符上
def get_char(r,g,b,alpha = 256):
#alpha为透明度
# 判断 alpha 值,为0表示全透明
if alpha == 0:
return ' '
# 获取字符集的长度,这里为 70
length = len(ascii_char)
# 将 RGB 值转为灰度值 gray,灰度值范围为 0-255
gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)
# 灰度值范围为 0-255,而字符集只有 70
# 需要进行如下处理才能将灰度值映射到指定的字符上
#防止当灰度值为255时,输出的第70个字符超出列表索引,所以需要将(255+1)
unit = (255.0 + 1)/length
# 返回灰度值对应的字符
return ascii_char[int(gray/unit)]
if __name__ == '__main__':
# 打开并调整图片的宽和高
im = Image.open(IMG)
im = im.resize((WIDTH,HEIGHT), Image.NEAREST)
# 初始化输出的字符串
txt = ""
# 遍历图片中的每一行
for i in range(HEIGHT):
# 遍历该行中的每一列
for j in range(WIDTH):
# 将 (j,i) 坐标的 RGB 像素转为字符后添加到 txt 字符串
txt += get_char(*im.getpixel((j,i)))
# 遍历完一行后需要增加换行符
txt += '\n'
# 输出到屏幕
print(txt)
with open(OUTPUT,'w') as f:
f.write(txt)
看完这九个5.20表白代码,你还不会怎么追女神,直接来找我!
最后祝所有的程序员小哥哥小姐姐终成眷属呀!