这个程序会在终端中显示随机的红色爱心,并不停地满屏飘动,直到被用户中断。
以下是Python实现满屏飘爱心代码:
import random import time def print_heart(): hearts = [''' ******** ** ** ** ** **** ** ** ** ** ** ** ** ** ** ** **** ''', ''' ******** ** ** ** ** ** ** ** **** ** ** ** ** ** ** ** ** ******** ''', ''' ******** ** ** ** ** ** ** ** **** ** ** ** ** ** ** ** ** ** ** ***** '''] print(random.choice(hearts)) def main(): width, height = 80, 24 while True: x, y = random.randint(0, width), random.randint(0, height) print('\033[%d;%dH' % (y, x) + '\033[1;31m' + print_heart() + '\033[0m') time.sleep(0.1) if __name__ == '__main__': try: main() except KeyboardInterrupt: pass
现在来解释一下程序的各个部分:
print_heart()
函数:用于打印随机的爱心图案。该函数定义了三个爱心图案,每次随机选择其中一个打印出来。
main()
函数:主函数,用于控制整个程序的流程。首先定义了终端的宽度和高度,然后进入一个无限循环中,在循环中随机生成爱心的位置,然后打印出来。每次打印完成后,程序暂停一段时间(这里是 0.1 秒),再进行下一轮循环。如果用户在运行过程中按下了 Ctrl+C 键,程序会捕捉到 KeyboardInterrupt 异常,然后退出。
\033[%d;%dH
和 \033[1;31m
:这两个字符串是 ANSI 控制码,用于控制终端的颜色和光标位置。\033[%d;%dH
表示将光标移动到指定的行和列,\033[1;31m
表示将后续的输出设置为红色。程序使用这些控制码将爱心打印在终端的随机位置,并且每次打印时会清空之前的输出。
try/except
语句:这个语句用于捕捉异常,可以在程序运行过程中遇到错误时进行处理。在本例中,程序使用 try/except
语句捕捉 KeyboardInterrupt 异常,这个异常在用户按下 Ctrl+C 键时会被触发。如果程序捕捉到这个异常,就会执行 except
子句中的代码。
评论