我的爱情与Python不得不说的故事

时间:2022-10-26 21:57:22

最近,沉迷于辩论比赛,有最近有场辩论赛因为一句话出圈了:为什么是坠入爱河而不是跳入爱河呢?因为爱本身是*意志的沉沦。这让我想起来我当时坠入爱河的时候,作为人家印象里呆板、没有情趣的程序员,我也有一颗期盼美好的心。几年前,在我和我女朋友认识的第二天,我用​​Python​​给她画了一幅画,让她大受感动,甚至也给我画了一幅水墨画如下:

我的爱情与Python不得不说的故事

接下来,我就简单介绍一下我这出其不意的一招:

首先,导入所要用到的包:

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() # random.random()生成一个0到1的随机符点数
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)

再说​​main​​函数:

if __name__ == "__main__":
# 绘图区域
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() # 最后这句是告诉海龟保持住,直到遇到鼠标点击的时候才退出 (exit on click)

最终成画效果为:

我的爱情与Python不得不说的故事

因为我们在画树的过程中具有随机性,所以每次画出来的树都是不一样的,可能有的好看,有的不好看,反正多试几次,就能画出好看的树了。

当时,其实还画了另一幅画:玫瑰花,如下图:

我的爱情与Python不得不说的故事

在我让她感受到了程序员的浪漫后,她终于答应做我女朋友了!所以,想要脱单的码农们,还不快冲,这还拿不下她?快来领取通往爱情的捷径吧(里面有不止两个的表白神器哦):​​kdocs.cn/l/cvfXyZPWBz2d​