一篇文章教你用python画动态爱心表白

初级画心

学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

总结

到此这篇关于教你用python画动态爱心表白的文章就介绍到这了,更多相关python画动态爱心表白内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 六行python代码的爱心曲线详解

    前些日子在做绩效体系的时候,遇到了一件囧事,居然忘记怎样在Excel上拟合正态分布了,尽管在第二天重新拾起了Excel中那几个常见的函数和图像的做法,还是十分的惭愧.实际上,当时有效偏颇了,忽略了问题的本质,解决数据分析和可视化问题,其实也是Python的拿手好戏. 例如,画出指定区间的一个多项式函数: Python 代码如下: import numpy as np import matplotlib.pyplot as plt X = np.linspace(-4, 4, 1024) Y =

  • python爱心表白 每天都是浪漫七夕!

    本文为大家分享了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 y

  • 使用Python画出小人发射爱心的代码

    我就废话不多说了,直接上代码吧! #2.14 from turtle import * from time import sleep def go_to(x, y): up() goto(x, y) down() def head(x,y,r): go_to(x,y) speed(1) circle(r) leg(x,y) def leg(x,y): right(90) forward(180) right(30) forward(100) left(120) go_to(x,y-180) fo

  • python画一个玫瑰和一个爱心

    节日用心准备的礼物,使用python画玫瑰和爱心,供大家参考,具体内容如下 #!/usr/bin/env python #coding=utf-8 #女生节礼物 import rospy from sensor_msgs.msg import LaserScan import numpy import copy node_name = "Test_Maker" class Test_Maker(): def __init__(self): self.Define() rospy.Tim

  • python 动态绘制爱心的示例

    代码 import turtle turtle.bgcolor("black") turtle.pensize(2) sizeh = 1.2 def curve(): for ii in range(200): turtle.right(1) turtle.forward(1 * sizeh) turtle.speed(0) turtle.color("red", "red") turtle.begin_fill() turtle.left(14

  • 一篇文章教你用python画动态爱心表白

    初级画心 学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, 1

  • 一篇文章教你掌握python数据类型的底层实现

    目录 1. 列表 1.1 复制 1.2 列表的底层实现 - 浅拷贝 1.3 浅拷贝 - 示例 1. 新增元素 2. 修改元素 3. 列表型元素 4. 元组型元素 5. 字典型元素 6. 小结 1.4 列表的底层实现 - 深拷贝 2. 字典 2.1 快速查找 2.2 字典的底层实现 1. 字典的创建过程 2. 字典的访问过程 2.3 小结 3. 字符串 4. 是否可变 不可变类型:数字,字符串,元组 可变类型:列表,字典,集合 总结 1. 列表 1.1 复制 浅拷贝 list_1 = [1, [2

  • 一篇文章教你用Python实现一键文件重命名

    目录 应用背景 准备工作 上脚本 view.py 功能展示 打包方式 windows打包方式:pycharm打包为exe执行文件方法 总结 应用背景 背景:"由于工作需要可能需要对一些文件进行重命名的处理,但是可能操作起来比较烦,点错了就命名失败或者没带鼠标,用控制板操作起来比较麻烦等等场景" ps:以上都是200自我觉得比较烦,所以才出了这个小功能- 好了,此版本是基于上次文章的版本进行更新,(❕这次对上次的代码进行了更新,下文不会进行补充了哦,详细可以查看github上的源代码)详

  • 一篇文章教你用Python实现一个学生管理系统

    目录 片头 源码: 总结 片头 Python看了差不多三四天吧,基本上给基础看差不多了.写个管理系统吧,后续不出意外SQL.文件存储版本都会更. 学习Python感想: 人生苦短,我用Python 人生苦短,我用Python 人生苦短,我用Python 人生苦短,我用Python Python实在太爽了 源码: 使用Python3 ''' 学生成绩管理系统 时间:2021.9.9 作者:sunbeam ''' import time import os student_list = [] #定义

  • 一篇文章教你用Python绘画一个太阳系

    目录 日地月三体 日地火 太阳系 你们要的3D太阳系 图片上传之后不知为何帧率降低了许多... 日地月三体 所谓三体,就是三个物体在重力作用下的运动.由于三点共面,所以三个质点仅在重力作用下的运动轨迹也必然无法逃离平面. 三体运动所遵循的规律就是古老而经典的万有引力 则对于 m i 而言, 且 将其写为差分形式 由于我们希望观察三体运动的复杂形式,而不关系其随对应的宇宙星体,所以不必考虑单位制,将其在二维平面坐标系中拆分,则 #后续代码主要更改这里的参数 m = [1.33e20,3.98e14

  • 一篇文章教你学会使用Python绘制甘特图

    目录 优点 局限 一日一书 用来制作甘特图的专业工具也不少,常见的有:Microsoft Office Project.GanttProject.WARCHART XGantt.jQuery.Gantt.Excel等,网络上也有一些优质工具支持在线绘制甘特图. 可是这种现成的工具,往往也存在一些弊端,让编程人员不知所措.比如说,花里胡哨的UI,让人目不暇接,不知点哪个才好: 比如说,有些基于浏览器的图表需要掌握HTML.JS等编程语言,只会点Python的我直接被劝退: 再比如,进来就是注册.登

  • 一篇文章教你使用SpringBoot如何实现定时任务

    前言 在 Spring + SpringMVC 环境中,一般来说,要实现定时任务,我们有两中方案,一种是使用 Spring 自带的定时任务处理器 @Scheduled 注解,另一种就是使用第三方框架 Quartz ,Spring Boot 源自 Spring+SpringMVC ,因此天然具备这两个 Spring 中的定时任务实现策略,当然也支持 Quartz,本文我们就来看下 Spring Boot 中两种定时任务的实现方式. 一.第一种方式:@Scheduled 使用 @Scheduled

  • 一篇文章教你学会js实现弹幕效果

    目录 新建一个html文件: 建好html文件,搞出初始模版 HTML添加 CSS填充 js逻辑代码 动画效果 下面是弹幕效果 : 相信小伙伴们都看过了,那么它实现的原理是什么呢,那么我们前端怎么用我们web技术去实现呢?? 新建一个html文件: 哈哈哈,大家别像我一样用中文命名. 中文命名是不合规范的,行走江湖,大佬们看见你的中文命名会笑话你的. 上图中,我们引入了jquery插件,没错我们用jq写,回归原始(找不到cdn链接的小伙伴可以百度bootcdn,在里面搜索jquery).并且取了

  • 教你使用Python画棵圣诞树完整代码

    最近圣诞节快到啦,CSDN的热搜也变成了"代码画颗圣诞树",看了几篇博客,发现原博主把一些圣诞树给融合在了一起. 我更喜欢树叶更茂盛的感觉,所以就加了一句代码. t.pensize(10) # 修改画笔大小 效果图: ①这是t.pensize(10)的效果 ②这是t.pensize(5)的效果 完整版代码: import turtle as t # as就是取个别名,后续调用的t都是turtle from turtle import * import random as r impor

  • 一篇文章彻底弄懂Python字符编码

    目录 1. 字符编码简介 1.1. ASCII 1.2. MBCS 1.3. Unicode 2. Python2.x中的编码问题 2.1. str和unicode 2.2. 字符编码声明 2.3. 读写文件 2.4. 与编码相关的方法 3.建议 3.1.字符编码声明 3.2. 抛弃str,全部使用unicode. 3.3. 使用codecs.open()替代内置的open(). 3.4. 绝对需要避免使用的字符编码:MBCS/DBCS和UTF-16. 1. 字符编码简介 1.1. ASCII

随机推荐