眼看七夕就要来了,我已经预感到我那天会忙的不可开交。因为我早上要卖花,晚上要卖TT,凌晨我还得蹲酒店门口卖yao,顿时感觉生活好艰辛啊。
虽然有点小丢人,但是我一点也不担心,因为我能碰到同行的几率很低,毕竟程序员作为单身狗最多的职业,基本不会成为我七夕那天的顾客的啦!
其实没有女朋友是很幸福的,不像我,还要靠七夕兼职来养活我的女朋友,唉,人生呐!
为了帮助大家脱单,也是为了大家都能成为我的顾客,增加我的收入,下面我就给大家分享几个Python表白的小程序,附上源代码。能不能脱单,就看它了!
开发工具:Pycham
使用的库:Turtle
第一个、画个表白的桃心
效果:
代码:
# -*- 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()
第二个、用一箭穿心来证明自己的爱
效果:
代码:
import turtle
import time# 清屏函数
def clear_all():turtle.penup()turtle.goto(0, 0)turtle.color('white')turtle.pensize(800)turtle.pendown()turtle.setheading(0)turtle.fd(300)turtle.bk(600)# 重定位海龟的位置
def go_to(x, y, state):turtle.pendown() if state else turtle.penup()turtle.goto(x, y)# 画线
# state为真时海龟回到原点,为假时不回到原来的出发点
def draw_line(length, angle, state):turtle.pensize(1)turtle.pendown()turtle.setheading(angle)turtle.fd(length)turtle.bk(length) if state else turtle.penup()turtle.penup()# 画箭羽
def draw_feather(size):angle = 30 # 箭的倾角feather_num = size // 6 # 羽毛的数量feather_length = size // 3 # 羽毛的长度feather_gap = size // 10 # 羽毛的间隔for i in range(feather_num):draw_line(feather_gap, angle + 180, False) # 箭柄,不折返draw_line(feather_length, angle + 145, True) # 羽翼,要折返draw_line(feather_length, angle + 145, False)draw_line(feather_num * feather_gap, angle, False)draw_line(feather_length, angle + 145 + 180, False)for i in range(feather_num):draw_line(feather_gap, angle + 180, False) # 箭柄,不折返draw_line(feather_length, angle - 145, True) # 羽翼,要折返draw_line(feather_length, angle - 145, False)draw_line(feather_num * feather_gap, angle, False)draw_line(feather_length, angle - 145 + 180, False)# 画爱心
def draw_heart(size):turtle.color('red', 'pink')turtle.pensize(2)turtle.pendown()turtle.setheading(150)turtle.begin_fill()turtle.fd(size)turtle.circle(size * -3.745, 45)turtle.circle(size * -1.431, 165)turtle.left(120)turtle.circle(size * -1.431, 165)turtle.circle(size * -3.745, 45)turtle.fd(size)turtle.end_fill()# 画箭
def draw_arrow(size):angle = 30turtle.color('black')draw_feather(size)turtle.pensize(4)turtle.setheading(angle)turtle.pendown()turtle.fd(size * 2)# 一箭穿心
# 箭的头没有画出来,而是用海龟来代替
def arrow_heart(x, y, size):go_to(x, y, False)draw_heart(size * 1.15)turtle.setheading(-150)turtle.penup()turtle.fd(size * 2.2)draw_heart(size)turtle.penup()turtle.setheading(150)turtle.fd(size * 2.2)draw_arrow(size)# 画出发射爱心的小人
def draw_people(x, y):turtle.penup()turtle.goto(x, y)turtle.pendown()turtle.pensize(2)turtle.color('black')turtle.setheading(0)turtle.circle(60, 360)turtle.penup()turtle.setheading(90)turtle.fd(75)turtle.setheading(180)turtle.fd(20)turtle.pensize(4)turtle.pendown()turtle.circle(2, 360)turtle.setheading(0)turtle.penup()turtle.fd(40)turtle.pensize(4)turtle.pendown()turtle.circle(-2, 360)turtle.penup()turtle.goto(x, y)turtle.setheading(-90)turtle.pendown()turtle.fd(20)turtle.setheading(0)turtle.fd(35)turtle.setheading(60)turtle.fd(10)turtle.penup()turtle.goto(x, y)turtle.setheading(-90)turtle.pendown()turtle.fd(40)turtle.setheading(0)turtle.fd(35)turtle.setheading(-60)turtle.fd(10)turtle.penup()turtle.goto(x, y)turtle.setheading(-90)turtle.pendown()turtle.fd(60)turtle.setheading(-135)turtle.fd(60)turtle.bk(60)turtle.setheading(-45)turtle.fd(30)turtle.setheading(-135)turtle.fd(35)turtle.penup()# 第一个画面,显示文字
def page0():turtle.penup()turtle.goto(-350, 0)turtle.color('black')turtle.write('祝李四情人节快乐', font=('宋体', 60, 'normal'))time.sleep(3)# 第二个画面,显示发射爱心的小人
def page1():turtle.speed(10)draw_people(-250, 20)turtle.penup()turtle.goto(-150, -30)draw_heart(14)turtle.penup()turtle.goto(-20, -60)draw_heart(25)turtle.penup()turtle.goto(250, -100)draw_heart(45)turtle.hideturtle()time.sleep(3)# 最后一个画面,一箭穿心
def page2():turtle.speed(1)turtle.penup()turtle.goto(-200, -200)turtle.color('blue')turtle.pendown()turtle.write('张三 李四', font=('wisdom', 50, 'normal')) #这里写彼此的姓名替换掉张三李四turtle.penup()turtle.goto(0, -180)draw_heart(10)arrow_heart(20, -60, 51)turtle.showturtle()def main():turtle.setup(900, 500)page0()clear_all()page1()clear_all()page2()turtle.done()main()
第三个、挂在树上的爱
效果:
代码:
import turtle
import randomdef love(x,y):#在(x,y)处画爱心lalalalv=turtle.Turtle()lv.hideturtle()lv.up()lv.goto(x,y)#定位到(x,y)def curvemove():#画圆弧for i in range(20):lv.right(10)lv.forward(2)lv.color('red','pink')lv.speed(100)lv.pensize(1)#开始画心lv.down()lv.begin_fill()lv.left(140)lv.forward(22)curvemove()lv.left(120)curvemove()lv.forward(22)lv.write("杨幂",font=("Arial",12,"normal"),align="center")#这里写你心上人的名字lv.left(140)#回到原位lv.end_fill()def tree(branchLen,t):if branchLen > 5:#剩余树枝太少要结束递归if branchLen<20:t.color("green")t.pensize(random.uniform((branchLen + 5) / 4 - 2, (branchLen + 6) / 4 + 5))t.down()t.forward(branchLen)love(t.xcor(),t.ycor())#传输现在turtle的坐标t.up()t.backward(branchLen)t.color("brown")returnt.pensize(random.uniform((branchLen+5)/4-2,(branchLen+6)/4+5))t.down()t.forward(branchLen)# 以下递归ang=random.uniform(15,45)t.right(ang)tree(branchLen-random.uniform(12,16),t)#随机决定减小长度t.left(2*ang)tree(branchLen-random.uniform(12,16),t)#随机决定减小长度t.right(ang)t.up()t.backward(branchLen)myWin = turtle.Screen()t = turtle.Turtle()t.hideturtle()t.speed(1000)t.left(90)t.up()t.backward(200)t.down()t.color("brown")t.pensize(32)t.forward(60)tree(100,t)myWin.exitonclick()
以上,就是分享给大家的Python表白小程序,我只能帮大家到这里了,能不能趁七夕脱单,在此一举,马蒙也祝愿各位单身的程序猿大佬们能早日找到对象,做到真正面对对象编程!
另外有关Python学习上的问题,可以到:
976191019
这个群里来找我,基本上看到都会帮你解答的。