极简字符爱心(直接运行)
一行打印字符爱心,简洁直观,适合快速展示
print('\n'.join([''.join([('爱心'[(x-y)%len('爱心')] 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(15,-15,-1)]))
经典数学公式爱心(带颜色,更美观)
基于笛卡尔心形公式,搭配Python自带的颜色输出,爱心轮廓更标准
import math
for y in range(15, -15, -1):
s = ''
for x in range(-30, 30):
if ((x*0.04)**2 + (y*0.1)**2 - 1)**3 - (x*0.04)**2 * (y*0.1)**3 <= 0:
# 红色爱心(终端支持ANSI颜色)
s += '\033[31m♥\033[0m'
else:
s += ' '
print(s)
动态跳动爱心(带延迟,有互动感)
加入时间延迟,实现爱心缓慢跳动的效果,需要导入 time 库
import math
import time
def draw_heart():
for y in range(15, -15, -1):
line = ''
for x in range(-30, 30):
if ((x*0.04)**2 + (y*0.1)**2 - 1)**3 - (x*0.04)**2 * (y*0.1)**3 <= 0:
line += '\033[31m♥\033[0m'
else:
line += ' '
print(line)
# 循环跳动,按Ctrl+C停止
while True:
draw_heart()
time.sleep(0.5)
# 清屏(Windows用cls,Mac/Linux用clear)
import os
os.system('cls' if os.name == 'nt' else 'clear')
极简字符爱心(直接运行)
一行打印字符爱心,简洁直观,适合快速展示
python
print('\n'.join([''.join([('爱心'[(x-y)%len('爱心')] 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(15,-15,-1)]))
经典数学公式爱心(带颜色,更美观)
基于笛卡尔心形公式,搭配Python自带的颜色输出,爱心轮廓更标准
python
import math
for y in range(15, -15, -1):
s = ''
for x in range(-30, 30):
if ((x*0.04)**2 + (y*0.1)**2 - 1)**3 - (x*0.04)**2 * (y*0.1)**3 <= 0:
# 红色爱心(终端支持ANSI颜色)
s += '\033[31m♥\033[0m'
else:
s += ' '
print(s)
动态跳动爱心(带延迟,有互动感)
加入时间延迟,实现爱心缓慢跳动的效果,需要导入 time 库
python
import math
import time
def draw_heart():
for y in range(15, -15, -1):
line = ''
for x in range(-30, 30):
if ((x*0.04)**2 + (y*0.1)**2 - 1)**3 - (x*0.04)**2 * (y*0.1)**3 <= 0:
line += '\033[31m♥\033[0m'
else:
line += ' '
print(line)
# 循环跳动,按Ctrl+C停止
while True:
draw_heart()
time.sleep(0.5)
# 清屏(Windows用cls,Mac/Linux用clear)
import os
os.system('cls' if os.name == 'nt' else 'clear')
运行说明
1. 以上代码均可直接在Python3环境(IDLE、PyCharm、终端)运行
2. 颜色和动态效果在终端/命令行中显示最佳,部分IDE的输出窗口可能不支持ANSI颜色
3. 动态爱心可通过 Ctrl+C 终止运行
带自定义文字的爱心代码(红色字符版,直接运行)
可自行修改代码里的自定义文字,文字会居中显示在爱心中,适配终端/IDLE/PyCharm
带自定义文字的爱心代码(红色字符版,直接运行)
import math
# --------------------------
# 在这里修改你要显示的文字,建议2-4个字最佳
custom_text = "平安喜乐"
# --------------------------
# 爱心绘制核心逻辑+文字居中
def draw_heart_with_text(text):
# 计算文字居中偏移量
text_len = len(text)
offset = text_len // 2
for y in range(15, -15, -1):
line = ""
for x in range(-30, 30):
# 笛卡尔心形公式
if ((x*0.04)**2 + (y*0.1)**2 - 1)**3 - (x*0.04)**2 * (y*0.1)**3 <= 0:
line += "\033[31m♥\033[0m"
else:
# 文字居中显示(固定y轴位置,适配x轴)
if y == 1 and x >= -offset and x < text_len - offset:
line += f"\033[32m{text[x + offset]}\033[0m"
else:
line += " "
print(line)
# 执行绘制
if __name__ == "__main__":
draw_heart_with_text(custom_text)
优化版:跳动爱心+自定义文字(动态版)
爱心会循环跳动,文字始终居中,氛围感拉满,按 Ctrl+C 停止运行
import math
import time
import os
# --------------------------
# 自定义文字,建议2-4个字
custom_text = "万事顺意"
# --------------------------
def draw_heart(text):
text_len = len(text)
offset = text_len // 2
for y in range(15, -15, -1):
line = ""
for x in range(-30, 30):
if ((x*0.04)**2 + (y*0.1)**2 - 1)**3 - (x*0.04)**2 * (y*0.1)**3 <= 0:
line += "\033[31m♥\033[0m"
else:
if y == 1 and x >= -offset and x < text_len - offset:
line += f"\033[32m{text[x + offset]}\033[0m"
else:
line += " "
print(line)
# 循环跳动,清屏适配Windows/Mac/Linux
if __name__ == "__main__":
try:
while True:
draw_heart(custom_text)
time.sleep(0.6)
os.system('cls' if os.name == 'nt' else 'clear')
except KeyboardInterrupt:
print("\033[31m爱心派送结束~\033[0m")
小提示
1. 文字建议2-4个字,太长会超出爱心范围,短字视觉效果更协调;
2. 爱心是红色♥,文字是绿色,终端不支持ANSI颜色会自动显示默认字符,不影响形状;
3. 动态版按 Ctrl+C 停止后,会显示「爱心派送结束」的温馨提示。