
包含新年祝福、工作顺利、学习进步等多条祝福语,并且用不同的图案和动画效果来展示这些祝福。以下是一个创意实现:
创意设计
-
新年祝福:用雪花图案逐渐出现,表示新年的到来。
-
工作顺利:用向上的箭头图案逐渐出现,表示事业蒸蒸日上。
-
学习进步:用书本图案逐渐出现,表示知识的积累。
代码实现
Python复制
import time
import os
import random
# 逐个字符打印祝福语
def print_greeting(greeting):
for char in greeting:
print(char, end="", flush=True)
time.sleep(0.1) # 每个字符之间暂停0.1秒
print("\n")
# 打印雪花图案
def print_snowflakes():
print("新年快乐")
for _ in range(5): # 雪花逐渐出现5次
for row in range(5):
for col in range(5):
if random.random() < 0.3: # 30%的概率打印雪花
print("*", end=" ")
else:
print(" ", end=" ")
print()
time.sleep(0.5) # 每次打印后暂停0.5秒
os.system('cls' if os.name == 'nt' else 'clear') # 清屏
# 打印向上的箭头图案
def print_arrows():
print("工作顺利")
for _ in range(5): # 箭头逐渐出现5次
for row in range(5):
for col in range(5):
if row == 4 or (row == 3 and col == 2) or (row == 2 and col in [1, 3]) or (row == 1 and col == 2):
print("^", end=" ")
else:
print(" ", end=" ")
print()
time.sleep(0.5) # 每次打印后暂停0.5秒
os.system('cls' if os.name == 'nt' else 'clear') # 清屏
# 打印书本图案
def print_books():
print("学习进步")
for _ in range(5): # 书本逐渐出现5次
for row in range(5):
for col in range(5):
if (row in [0, 4] and col in [1, 2, 3]) or (row in [1, 3] and col in [0, 4]) or (row == 2 and col in [0, 1, 3, 4]):
print("B", end=" ")
else:
print(" ", end=" ")
print()
time.sleep(0.5) # 每次打印后暂停0.5秒
os.system('cls' if os.name == 'nt' else 'clear') # 清屏
# 主程序
print_greeting("新年快乐\n愿你在新的一年里,万事如意,幸福安康!")
print_snowflakes()
print_greeting("工作顺利\n愿你在新的一年里,事业蒸蒸日上,步步高升!")
print_arrows()
print_greeting("学习进步\n愿你在新的一年里,学业有成,知识渊博!")
print_books()
print("\n" + "* " * 30) # 打印底部装饰
代码说明
-
print_greeting函数:逐个字符打印祝福语,每个字符之间有0.1秒的间隔,使文字看起来像是在逐个出现。 -
print_snowflakes函数:打印雪花图案,每次打印后暂停0.5秒,然后清屏,形成雪花逐渐出现的效果。 -
print_arrows函数:打印向上的箭头图案,每次打印后暂停0.5秒,然后清屏,形成箭头逐渐出现的效果。 -
print_books函数:打印书本图案,每次打印后暂停0.5秒,然后清屏,形成书本逐渐出现的效果。 -
清屏操作:使用
os.system('cls' if os.name == 'nt' else 'clear')来清屏,这行代码会根据操作系统类型(Windows使用cls,Unix/Linux使用clear)来清空控制台内容。
运行效果
运行这段代码后,你会看到:
-
新年祝福语逐个字符打印出来,然后雪花图案逐渐出现5次。
-
工作顺利的祝福语逐个字符打印出来,然后向上的箭头图案逐渐出现5次。
-
学习进步的祝福语逐个字符打印出来,然后书本图案逐渐出现5次。
-
最后打印出一行装饰线条。


可以加入一些更复杂的动画效果和交互功能。以下是一些独特的功能设计和实现:
1. 交互式祝福语选择
允许用户选择他们想要显示的祝福语,增加用户参与感。
2. 动态渐变颜色效果
使用ANSI转义序列来实现文本颜色的动态渐变,使输出更加丰富多彩。
3. 3D效果的心形旋转
通过简单的字符操作,模拟3D效果的心形旋转动画,增加视觉冲击力。
4. 音乐伴奏
使用winsound模块(Windows)或simpleaudio模块(跨平台)播放背景音乐,增加氛围感。
5. 保存祝福语到文件
允许用户将生成的祝福语和图案保存到文本文件中,方便分享和回顾。
代码实现
以下是一个包含上述功能的示例代码:
Python复制

import time
import os
import random
import winsound # 仅在Windows上有效
# 逐个字符打印祝福语
def print_greeting(greeting, color_code):
for char in greeting:
print(f"\033[{color_code}m{char}\033[0m", end="", flush=True)
time.sleep(0.1) # 每个字符之间暂停0.1秒
print("\n")
# 打印3D效果的心形旋转
def print_3d_heart():
print("新年快乐")
for angle in range(0, 360, 10): # 旋转360度,每次旋转10度
os.system('cls' if os.name == 'nt' else 'clear') # 清屏
for row in range(15):
for col in range(15):
x = col - 7.5
y = row - 7.5
# 3D旋转效果
x_rot = x * (1 + 0.1 * (angle / 180))
y_rot = y * (1 - 0.1 * (angle / 180))
if ((x_rot ** 2 + y_rot ** 2 - 25) ** 3 - x_rot ** 2 * y_rot ** 3 <= 0):
print("\033[91m*\033[0m", end=" ")
else:
print(" ", end=" ")
print()
time.sleep(0.1) # 每次旋转后暂停0.1秒
# 播放背景音乐
def play_music():
winsound.Beep(2500, 1000) # 频率2500赫兹,持续时间1000毫秒
winsound.Beep(2000, 1000)
winsound.Beep(1500, 1000)
# 保存祝福语到文件
def save_to_file(greeting, filename):
with open(filename, "w") as file:
file.write(greeting)
# 主程序
def main():
greetings = {
1: "新年快乐\n愿你在新的一年里,万事如意,幸福安康!",
2: "工作顺利\n愿你在新的一年里,事业蒸蒸日上,步步高升!",
3: "学习进步\n愿你在新的一年里,学业有成,知识渊博!"
}
print("请选择祝福语:")
for key, value in greetings.items():
print(f"{key}. {value.split('\n')[0]}")
choice = int(input("请输入数字选择祝福语:"))
if choice in greetings:
greeting = greetings[choice]
print_greeting(greeting, 91) # 91是红色
print_3d_heart()
play_music()
filename = "blessing.txt"
save_to_file(greeting, filename)
print(f"祝福语已保存到文件:{filename}")
else:
print("无效的选择!")
if __name__ == "__main__":
main()
代码说明
-
print_greeting函数:逐个字符打印祝福语,并使用ANSI转义序列设置文本颜色。 -
print_3d_heart函数:打印3D效果的心形旋转动画,通过简单的数学变换模拟3D效果。 -
play_music函数:使用winsound模块播放背景音乐,增加氛围感。 -
save_to_file函数:将生成的祝福语保存到文本文件中,方便用户分享和回顾。 -
main函数:主程序,允许用户选择祝福语,并调用上述函数实现各种效果。
运行效果
运行这段代码后,用户可以选择他们想要显示的祝福语,然后程序会逐个字符打印祝福语,显示3D效果的心形旋转动画,播放背景音乐,并将祝福语保存到文件中。
649

被折叠的 条评论
为什么被折叠?



