专栏首页用户7466307的专栏30秒教会你用Python制作520表白神器

30秒教会你用Python制作520表白神器

就是520了,不知道各位有没有都由单身dog进化为秀恩爱dog。

在我大三的时候,就有一个计算机的朋友用自己做的代码感动了一个数学系的女生。就是下面这种。(这个爱心是有运行结果的!)也不知道为什么妹子放弃了全班30多位帅哥(没错,他们班就她一个女生),而选择了头发日渐稀疏已经“六月怀胎”的我朋友。

今天,我就来教大家一下,如何用Python做一份特别的礼物送给自己的恋人。

当然了,如果还是单身的,也可以把这个作为表白神器,和心爱的人表白

道该如何操作,那些不懂编程的人,如果想尝试,那该怎么办呢?

这里我特地制作了小程序懂编程的就看下面的吧!送上这份礼物之后,保证你明晚.....巫山云雨后,天气晚来秋啊!

01

首先教大家一个初级版的。这个就比较简单,利用Python制作一个爱心。

我先把代码给贴出来:

import turtle
import time
# 画爱心的顶部
def LittleHeart():
    for i in range (200):
        turtle.right(1)
        turtle.forward(2)
# 输入表白的语句,默认I Love you
love=input('Please enter a sentence of love, otherwise the default is "I Love you":\n')
#输入署名或者赠谁,没有不执行
me=input('Please enter pen name, otherwise the default do not execute:\n')
if love=='':
    love='I Love you'
# 窗口大小
turtle.setup(width=900, height=500)
# 颜色
turtle.color('red','pink')
# 笔粗细
turtle.pensize(3)
# 速度
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 random
def love(x, y):  # 在(x,y)处画爱心lalala
    lv = 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(10000000)
    lv.pensize(1)
    # 开始画爱心lalala
    lv.down()
    lv.begin_fill()
    lv.left(140)
    lv.forward(22)
    curvemove()
    lv.left(120)
    curvemove()
    lv.forward(22)
    lv.write("yuhan", 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")
            return
        t.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()

图中的“yuhan”是可以改的!看到代码里的“yuhan”几个字了没?直接把这两个字母替换成你心上人的名字就好。中文英文都可以。

02

第二种Gif图,简单优雅,代码易懂,用python标准库turtle一步步画图,完成之后用屏幕录制gif工具生成动图就行了,效果演示:

import turtle
import time
# writing txt
turtle.hideturtle()
turtle.penup()
turtle.goto(80, 50)
# turtle.pendown()
turtle.color("purple")
time.sleep(1)
#XX同学可以改为你自己的表白对象
turtle.write("XX同学给你画个东西", font=("Times", 18, "bold"))
time.sleep(0.5)
turtle.goto(180, 10)
turtle.write("开始了哈~", font=("Times", 18, "bold"))
time.sleep(0.5)
turtle.goto(200, -20)
turtle.write("Ready?", font=("Times", 18, "bold"))
time.sleep(0.5)
turtle.goto(215, -50)
turtle.write("go!", font=("Times", 18, "bold"))
time.sleep(0.5)
# turtle.end_fill()
#
# 设置初始位置
turtle.goto(0, 0)
turtle.color("black")
turtle.penup()
turtle.left(90)
turtle.fd(200)
turtle.pendown()
turtle.right(90)
# 花蕊
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()
# 花瓣1
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)
# 花瓣2
turtle.left(180)
turtle.circle(90, 40)
turtle.circle(-80, 98)
turtle.setheading(-83)
# 叶子1
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)
# 叶子2
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, 60)
time.sleep(0.5)
turtle.penup()
turtle.color("orange")
turtle.goto(180, -100)
turtle.write("umd~送给你~", font=("Times", 18, "bold"))
turtle.goto(180, -120)
turtle.write("情人节快乐!", font=("Times", 18, "bold"))
time.sleep(10)

屏幕录制工具我用的 licecapGIF,很强大,录制出来的像素很高体积很小

本文分享自微信公众号 - 软件测试test(gh_d29759b02f67),作者:Coldrain

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 小程序测试框架之minium入门

    用户7466307
  • python接口测试—get请求

    Python 做借口测试用到的是requests模块,首先要导入requests库,pip install requests

    用户7466307
  • APP应用测试要点。。。。我知道的就这么多

    对于APP项目的测试,一般是进行系统测试。测试主要从业务功能和非业务功能两个方面考虑。

    用户7466307
  • 520程序猿用最时尚的方式说爱你

    程序猿浪漫起来更让人动心!程序猿可以用诗词暗示对方,山有木兮木有枝,心悦君兮,君不知窈窕淑女,君子好逑。程序猿表白起来更让人惊心!在程序猿的面向对象的世界里,程...

    一猿小讲
  • 用 Python 画一只福鼠!

    今年这个鼠年,尽管只是刚过了一个开头,但现实仿佛把我们很多年才需要经历的不好的事情,都在一瞬间抛向了我们,这个鼠年好像缺了点福气,本节我们使用 Python 画...

    纯洁的微笑
  • Python语言程序设计之二--用tur

    这篇笔记依然是在做《Python语言程序设计》第5章循环的习题。其中有两类问题需要记录下来。

    py3study
  • Python的学习笔记--画图

    海龟绘图画图比较简单,主要使用python的turtle模块, 就是通过编程指挥一个小海龟在屏幕上前进和左转右转。

    付威
  • python 学习总结3

    该程序运用到了python的标准库Turtle,那么什么是Turtle,他又能用来干什么呢?

    py3study
  • [Python学习笔记] turtle库

    py3study
  • python的表白

    py3study

扫码关注云+社区

领取腾讯云代金券