一篇文章教你用python画动态爱心表白
作者:曾亲桂林 时间:2021-02-10 04:14:38
初级画心
学Python,感觉你们的都好复杂,那我来个简单的,我是直接把心形看作是一个正方形+两个半圆:
于是这就很简单了,十行代码解决:
import turtle as t
t.pensize(2)
# 笔大小2像素
t.pencolor("red")
# 颜色为红色
t.left(45)
# 45度
t.fd(200)
# 向前200直线
t.circle(100, 180)
# 画一圆半径100 弧度180
t.right(90)
# 向右90度
t.circle(100, 180)
# 再画一个圆半径100 弧度180
t.fd(200)
# 直线向前直线200
t.done()
# 绘制完成
一行代码画心
原代码
print('\n'.join([''.join([('Love'[(x-y) % len('Love')] if ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3 <= 0 else ' ') for x in range(-30, 30)]) for y in range(30, -30, -1)]))
拆解了一下这段长串的【一行代码】,得到如下的多行代码,实际运行效果一致,代码如下:
import time
words = input('请输出想要表达的文字:')
#例子:words = "Dear lili, Happy Valentine's Day! Lyon Will Always Love You Till The End! ♥ Forever! ♥"
for item in words.split():
#要想实现打印出字符间的空格效果,此处添加:item = item+' '
letterlist = []#letterlist是所有打印字符的总list,里面包含y条子列表list_X
for y in range(12, -12, -1):
list_X = []#list_X是X轴上的打印字符列表,里面装着一个String类的letters
letters = ''#letters即为list_X内的字符串,实际是本行要打印的所有字符
for x in range(-30, 30):#*是乘法,**是幂次方
expression = ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3
if expression <= 0:
letters += item[(x-y) % len(item)]
else:
letters += ' '
list_X.append(letters)
letterlist += list_X
print('\n'.join(letterlist))
time.sleep(1.5);
但是,有点太单调了点,来,让我撸起袖子搞点事情,将代码简单改造一下,实现动态输出心形的一段话的效果:
改造以后,看上去不错了!效果如下:
代码如下,喜欢请点赞哦,谢谢❤️!:
import time
words = input('请输出想要表达的文字:')
for item in words.split():
print('\n'.join([''.join([(item[(x-y) % len(item)] if ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3 <= 0 else ' ') for x in range(-30, 30)]) for y in range(12, -12, -1)]))
time.sleep(1.5)
其实,像❤️ 这样类型的颜文字其实也是可以输出的,不过格式不是标准的心型,需要自行调节,大家可以自己尝试下^_^!
参考:Lyon https://zhuanlan.zhihu.com/p/33816013
来源:https://blog.csdn.net/bigzql/article/details/109713022
标签:python,动态,爱心


猜你喜欢
python使用KNN算法识别手写数字
2022-02-20 10:48:23
Go语言服务器开发之客户端向服务器发送数据并接收返回数据的方法
2024-04-27 15:39:58
python中pandas.DataFrame对行与列求和及添加新行与列示例
2023-03-16 22:44:01
selenium IDE自动化测试脚本的实现
2023-06-29 18:46:11

简洁js的隔行变色代码
2008-06-18 18:17:00
Python装饰器使用方法全面梳理
2023-04-27 08:22:15

golang 实现tcp server端和client端,并计算RTT时间操作
2023-08-30 14:12:49
解决Python中定时任务线程无法自动退出的问题
2022-09-05 22:52:52
Pycharm创建项目时如何自动添加头部信息
2021-06-28 18:01:14

js数组去重的方法汇总
2024-04-18 10:55:17
JavaScript Base64编码和解码,实现URL参数传递。
2024-04-22 22:45:32
JavaScript中CreateTextFile函数
2024-04-18 10:49:03
python pyinstaller打包exe报错的解决方法
2022-05-11 20:39:40

mysql报错:MySQL server version for the right syntax to use near type=InnoDB的解决方法
2024-01-20 19:17:17
python使用matplotlib画饼状图
2023-04-06 12:23:29

python实现PolynomialFeatures多项式的方法
2023-09-24 21:12:24

Golang巧用defer进行错误处理的方法
2023-08-05 03:21:13
Python实现周期性抓取网页内容的方法
2023-04-12 01:33:36
django的分页器Paginator 从django中导入类
2022-02-07 04:24:29

php返回相对时间(如:20分钟前,3天前)的方法
2023-10-26 11:20:38