用python设计一个表白代码,用python做一个表白程序

大家好,小编为大家解答用python设计一个表白小程序的问题。很多人还不知道用python做表白程序同意按1,现在让我们一起来看看吧!

圣诞节即将到了,所以这回通过turtle模块来编写一个表白的小程序

563a6b7d75eabc6b18e2c13938f018fe.png

开发时间:2019-12-15

开发工具:Sublime

开发模块:turtle

这里用到了turtle库的相关知识,如果不熟悉可以看我之前的博客:

首先,我们需要来创建一个函数来承载所有初始化数据,包括画布的大小,画笔的尺寸、颜色、还有画笔的移动速度

以演示图为例子,设置了一个800*600大小的画布,红色画笔宽为5,速度为10

代码如下所示:

definitdata():

t.setup(800,600)

t.pencolor('red')

t.pensize(5)

t.speed(10)

设置好相关属性后,就可以开始作画了

首先画笔位于正中央,若想移动画笔将会在画布上留下痕迹,也就是画上了线条,

但是有些线条,画作本身并不需要,这就需要做到让画笔移动的同时,画布不留痕迹

需要用到up()和down();两个函数,如直译一般作用为抬起画笔和放下画笔

所以操作为,抬起画笔——移动到指定地方——放下画笔

代码如下所示:

48304ba5e6f9fe08f3fa1abda7d326ab.png

ef move_pen(x,y):

t.hideturtle()

t.up()

t.goto(x,y)

t.down()

t.showturtle()

48304ba5e6f9fe08f3fa1abda7d326ab.png

注意:hideturtle()和showturtle()为隐藏画笔和显示画笔。对画作本身毫无影响

绘制演示图中,最难的部分在哪里?

一定是爱心上半部分的两个半圆,所以为方便,我们单独讲这一部分提出来做一个绘制半圆的函数

在turtle库中并没有绘制曲线的函数,最接近的也只有画圆了python引用turtle画蝴蝶

不过我们可以通过割圆法来绘制,也就是将这一段圆弧视为一个边长很短的多边形

所以我们通过for循环来绘制,通过不断偏转方向的小线段组成

代码如下:

defhart_arc():for i in range(200):

t.right(1)

t.forward(2)

现在我们开始绘制图形draw()

首先表白总要有表白者和被表白者吧,所以我们先创建name和sign来存储名字

之后通过调用初始化函数来获取相关信息

最后就可以操纵画笔开始绘制。

先将画笔移动到(0,-180)的位置,也就是爱心的下部尖端,这就用到了刚刚创建的移动函数,

之后控制画笔调整方向,移动224的距离绘制完成前面的爱心下部的右侧边

然后绘制爱心上半部分,调用hart_arc()绘制了爱心上半部分左侧,

然后调整方向,画笔向左偏转120度,再绘制另一个半圆

最后画笔返回初始位置,画好了第一个爱心,将其填充为粉色。

同理可画第二个爱心,到最后来一个“一箭双❤”就可以了

绘制完成之后,我们就要输出刚刚记载的两个人名了

这需要用到write()函数

代码如下:

48304ba5e6f9fe08f3fa1abda7d326ab.png

defdraw():

name=input("请输入表白姓名:")

sign=input("请输入你的大名:")

initdata()

move_pen(0,-180)

t.left(140)

t.fillcolor("pink")

t.begin_fill()

t.forward(224)

hart_arc()

t.left(120)

hart_arc()

t.forward(224)

t.end_fill()

move_pen(x=70, y=160)

t.left(185)

t.circle(-110,185)

t.forward(50)

move_pen(-180,-180)

t.left(180)

t.forward(600)

move_pen(0,50)

t.hideturtle()

t.color('#CD5C5C', 'red')

t.write(name, font=('Arial', 20, 'bold'), align="center")

t.color('red', 'pink')

time.sleep(2)

move_pen(220, -180)

t.hideturtle()

t.write(sign, font=('Arial', 20), align="center")

48304ba5e6f9fe08f3fa1abda7d326ab.png

这样表白的代码就制作完成了

f307a772cb468cf5b9815df07297b64a.png

感谢大家支持,总体代码如下:

48304ba5e6f9fe08f3fa1abda7d326ab.png

importturtle as timporttimedefinitdata():

t.setup(800,600)

t.pencolor('red')

t.pensize(5)

t.speed(10)defmove_pen(x,y):

t.hideturtle()

t.up()

t.goto(x,y)

t.down()

t.showturtle()defhart_arc():for i in range(200):

t.right(1)

t.forward(2)defdraw():

name=input("请输入表白姓名:")

sign=input("请输入你的大名:")

initdata()

move_pen(0,-180)

t.left(140)

t.fillcolor("pink")

t.begin_fill()

t.forward(224)

hart_arc()

t.left(120)

hart_arc()

t.forward(224)

t.end_fill()

move_pen(x=70, y=160)

t.left(185)

t.circle(-110,185)

t.forward(50)

move_pen(-180,-180)

t.left(180)

t.forward(600)

move_pen(0,50)

t.hideturtle()

t.color('#CD5C5C', 'red')

t.write(name, font=('Arial', 20, 'bold'), align="center")

t.color('red', 'pink')

time.sleep(2)

move_pen(220, -180)

t.hideturtle()

t.write(sign, font=('Arial', 20), align="center")defmain():

draw()

time.sleep(5)if __name__ == '__main__':

main()

48304ba5e6f9fe08f3fa1abda7d326ab.png

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值