Python打造虎年祝福神器的示例代码怎么写
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,今天就跟大家聊聊有关Python打造虎年祝福神器的示例代码怎么写,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python是什么Python是
千家信息网最后更新 2025年01月19日Python打造虎年祝福神器的示例代码怎么写
今天就跟大家聊聊有关Python打造虎年祝福神器的示例代码怎么写,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
python是什么
Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,其最初的设计是用于编写自动化脚本,随着版本的不断更新和新功能的添加,常用于用于开发独立的项目和大型项目。
背景故事
2022虎年将至,值此新春佳节之际,各大社区更是你争我赶纷纷发起春节征文活动正当我一筹莫展之际,几位粉丝朋友们的小请求点醒了我:
对呀,我何不用Python画一个老虎出来呢,加之增添几个功能,打造成一款虎年祝福神器!我瞬间灵感爆发,话不多说,先看成品:
首先是刚打开时的倒数界面,神秘感十足:
倒数结束后,来到我们的展示环节:
最后,是我们的成果,一直可爱的小老虎以及满屏的弹窗祝福:
制作过程
一、Python Turtle模块画小老虎
在这里,我们使用了Python中的一个非常好玩的库:Turtle,也就是我们常说的海龟画图!不懂的同学可以自行参考学习这篇文章,在这里不做过多的讲解:海龟画图全解–值得你一看!
1. 定义库以及初始化界面
def laohu(): import turtle as t # 设置幕布大小及颜色 t.screensize(50, 50, bg='yellow') t.title("老虎宝宝") t.shape("classic") t.pensize(10) t.color("orange") t.fillcolor("pink") t.speed(100) t.hideturtle()
2. 画出左右两只耳朵
# 左耳 t.penup() t.goto(-105, 97) t.setheading(160) t.begin_fill() t.pendown() t.circle(-30, 230) t.setheading(180) t.circle(37, 90) t.end_fill() # 右耳 t.penup() t.goto(105, 97) t.setheading(20) t.begin_fill() t.pendown() t.circle(30, 230) t.setheading(0) t.circle(-37, 90) t.end_fill()
3. 画出小老虎头部轮廓
# 头部轮廓 t.penup() t.goto(-67, 140) t.setheading(30) t.pendown() t.circle(-134, 60) t.penup() t.goto(-50, -25) t.setheading(180) t.pendown() t.circle(-100, 30) t.circle(-30, 90) t.setheading(100) t.circle(-200, 20) t.penup() t.goto(50, -25) t.setheading(0) t.pendown() t.circle(100, 30) t.circle(30, 90) t.setheading(80) t.circle(200, 20)
4. 画出老虎的两只眼睛
# 两虎眼 # 左眼 t.penup() t.goto(-90, 25) t.setheading(-45) t.fillcolor("orange") t.begin_fill() t.pendown() # 椭圆绘制技巧 a = 0.2 for i in range(120): if 0 <= i < 30 or 60 <= i < 90: a = a + 0.1 t.lt(3) # 向左转3度 t.fd(a) # 向前走a的步长 else: a = a - 0.1 t.lt(3) t.fd(a) t.end_fill() t.fillcolor("pink") t.penup() t.goto(-53, 43) t.setheading(0) t.begin_fill() t.pendown() t.circle(19, 360) t.end_fill() t.penup() t.pensize(4) t.goto(-60, 57) t.setheading(30) t.pendown() t.circle(-12, 60) # 右眼 t.penup() t.goto(90, 25) t.setheading(45) t.pensize(2) t.fillcolor("orange") t.begin_fill() t.pendown() # 椭圆绘制技巧 a = 0.2 for i in range(120): if 0 <= i < 30 or 60 <= i < 90: a = a + 0.1 t.lt(3) # 向左转3度 t.fd(a) # 向前走a的步长 else: a = a - 0.1 t.lt(3) t.fd(a) t.end_fill() t.fillcolor("pink") t.penup() t.goto(53, 43) t.setheading(0) t.begin_fill() t.pendown() t.circle(13, 360) t.end_fill() t.penup() t.pensize(4) t.goto(60, 57) t.setheading(150) t.pendown() t.circle(12, 60)
5. 画出老虎的鼻子和嘴巴
# 鼻子和嘴吧 t.penup() t.goto(-16, 20) t.setheading(-90) t.fillcolor("pink") t.begin_fill() t.pendown() a = 0.2 for i in range(120): if 0 <= i < 30 or 60 <= i < 90: a = a + 0.03 t.lt(3) t.fd(a) else: a = a - 0.03 t.lt(3) t.fd(a) t.end_fill() t.penup() t.goto(-24, 0) t.setheading(-60) t.pendown() t.circle(28, 120)
6. 画出小老虎的左右肢体和脚趾
# 小老虎肢体 # 左肢 t.color("orange") t.penup() t.goto(-65, -24) t.setheading(-140) t.begin_fill() t.pendown() t.circle(100, 40) t.setheading(180) t.circle(30, 40) t.setheading(-40) t.circle(40, 40) t.setheading(-150) a = 0.5 for i in range(120): if 0 <= i < 30 or 60 <= i < 90: a = a + 0.05 t.lt(3) # 向左转3度 t.fd(a) # 向前走a的步长 elif 30 <= i < 60 or 90 <= i < 100: a = a - 0.05 t.lt(3) t.fd(a) t.setheading(93) t.circle(-150, 30) t.end_fill() t.penup() t.goto(-85, -115) t.setheading(-150) t.color("pink", "pink") t.begin_fill() t.pendown() a = 0.3 for i in range(120): if 0 <= i < 30 or 60 <= i < 90: a = a + 0.03 t.lt(3) # 向左转3度 t.fd(a) # 向前走a的步长 else: a = a - 0.03 t.lt(3) t.fd(a) t.end_fill() # 每个脚趾绘制函数 def toe(x, y): t.begin_fill() t.goto(x, y) t.circle(3, 360) t.end_fill() t.penup() toe(-98, -120) toe(-96, -110) toe(-88, -105) toe(-80, -105) # 右肢 t.color("orange") t.penup() t.goto(65, -24) t.setheading(-40) t.begin_fill() t.pendown() t.circle(-100, 40) t.setheading(0) t.circle(-30, 40) t.setheading(-140) t.circle(-40, 40) t.setheading(-30) a = 0.5 for i in range(120): if 0 <= i < 30 or 60 <= i < 90: a = a + 0.05 t.rt(3) # 向左转3度 t.fd(a) # 向前走a的步长 elif 30 <= i < 60 or 90 <= i < 100: a = a - 0.05 t.rt(3) t.fd(a) t.setheading(87) t.circle(150, 30) t.end_fill() t.penup() t.goto(85, -115) t.setheading(150) t.color("pink", "pink") t.begin_fill() t.pendown() a = 0.3 for i in range(120): if 0 <= i < 30 or 60 <= i < 90: a = a + 0.03 t.lt(3) # 向左转3度 t.fd(a) # 向前走a的步长 else: a = a - 0.03 t.lt(3) t.fd(a) t.end_fill() t.penup() toe(98, -120) toe(96, -110) toe(88, -105) toe(80, -105)
7. 在需要的位置写上我们的新年祝福
t.goto(-57, -140) t.color("orange") t.setheading(-20) t.pendown() t.circle(165, 40) t.penup() t.goto(0, 180) t.write("祝大家虎年快乐,虎虎生威!", align="center", font=("Times", 28, "bold")) t.color("black") t.penup() t.goto(0, 80) t.write("王", align="center", font=("Times", 38, "bold")) t.penup() t.goto(0, -5) t.write("一 一", align="center", font=("Times", 18, "bold")) t.goto(0, -15) t.write("一 一", align="center", font=("Times", 18, "bold")) t.goto(0, -25) t.write("一 一", align="center", font=("Times", 18, "bold"))
看到这,我们的小老虎部分就已经大功告成了,大家可以先欣赏一下我们的小老虎:
二、弹窗设置
在必要处修改我们的数据就可以啦,大家以后都可以拿这个去用!
# 弹窗设置def dow(): window = tk.Tk() width = window.winfo_screenwidth() height = window.winfo_screenheight() a = random.randrange(0, width) b = random.randrange(0, height) window.title('虎来喽!') window.geometry("200x50" + "+" + str(a) + "+" + str(b)) tk.Label(window, text='虎年快乐虎虎生威', # 标签的文字 bg='red', # 背景颜色 font=('..', 17), # 字体和字体大小 width=18, height=2 # 标签长宽 ).pack() # 固定窗口位置 window.mainloop()
三、倒计时页面设计
1. 实现清屏功能以及初始化位置
import turtleimport timeimport randomimport tkinter as tkimport threading# 实现清屏def clear_screen(): turtle.screensize(50, 50, bg='yellow') turtle.penup() #画笔抬起 turtle.goto(0,0) #定位到(0,0) turtle.color('white') turtle.pensize(800) #画笔粗细 turtle.pendown() #画笔落下 turtle.setheading(0) #设置朝向 turtle.fd(300) #前进 turtle.bk(600) #后退# 初始化海龟的位置def go_start(x, y, state): turtle.pendown() if state else turtle.penup() turtle.goto(x, y) #画线,state为真时海龟回到原点,为假时不回到原来的出发点def draw_line(length, angle, state): turtle.pensize(1) turtle.pendown() turtle.setheading(angle) turtle.fd(length) turtle.bk(length) if state else turtle.penup() turtle.penup()
2. 显示倒数3,2,1
#显示倒数3,2,1def draw_0(i): turtle.screensize(50, 50, bg='yellow') turtle.speed(0) turtle.penup() turtle.hideturtle() # 隐藏箭头显示 turtle.goto(-50, -100) turtle.color('red') write = turtle.write(i, font=('宋体', 200, 'normal')) time.sleep(1)
3. 显示我们需要的文字
# 显示文字def draw_1(): turtle.penup() turtle.hideturtle() #隐藏箭头显示 turtle.goto(-410, 0) turtle.color('red') write = turtle.write('叮咚~新年礼物到啦????', font=('宋体', 60, 'normal')) time.sleep(2)
4. 设定代码运行入口,调用目标函数
number=[3,2,1] #储存显示界面倒数数字1,2,3if __name__ == '__main__': turtle.setup(900, 500) #调画布的尺寸 for i in number: turtle.screensize(50, 50, bg='yellow') draw_0(i) clear_screen() turtle.screensize(50, 50, bg='yellow') draw_1() clear_screen() turtle.screensize(50, 50, bg='yellow') laohu() time.sleep(5) threads = [] for i in range(100): # 需要的弹框数量 t = threading.Thread(target=dow) threads.append(t) time.sleep(0.01) threads[i].start()
结果展示
最后就是我们的结果啦,快去试试吧!
源码分享
import turtleimport timeimport randomimport tkinter as tkimport threading# 实现清屏def clear_screen(): turtle.screensize(50, 50, bg='yellow') turtle.penup() #画笔抬起 turtle.goto(0,0) #定位到(0,0) turtle.color('white') turtle.pensize(800) #画笔粗细 turtle.pendown() #画笔落下 turtle.setheading(0) #设置朝向 turtle.fd(300) #前进 turtle.bk(600) #后退# 初始化海龟的位置def go_start(x, y, state): turtle.pendown() if state else turtle.penup() turtle.goto(x, y)#画线,state为真时海龟回到原点,为假时不回到原来的出发点def draw_line(length, angle, state): turtle.pensize(1) turtle.pendown() turtle.setheading(angle) turtle.fd(length) turtle.bk(length) if state else turtle.penup() turtle.penup()#显示倒数3,2,1def draw_0(i): turtle.screensize(50, 50, bg='yellow') turtle.speed(0) turtle.penup() turtle.hideturtle() # 隐藏箭头显示 turtle.goto(-50, -100) turtle.color('red') write = turtle.write(i, font=('宋体', 200, 'normal')) time.sleep(1)# 显示文字def draw_1(): turtle.penup() turtle.hideturtle() #隐藏箭头显示 turtle.goto(-410, 0) turtle.color('red') write = turtle.write('叮咚~新年礼物到啦????', font=('宋体', 60, 'normal')) time.sleep(2)def laohu(): import turtle as t # 设置幕布大小及颜色 t.screensize(50, 50, bg='yellow') t.title("老虎宝宝") t.shape("classic") t.pensize(10) t.color("orange") t.fillcolor("pink") t.speed(100) t.hideturtle() # 左耳 t.penup() t.goto(-105, 97) t.setheading(160) t.begin_fill() t.pendown() t.circle(-30, 230) t.setheading(180) t.circle(37, 90) t.end_fill() # 右耳 t.penup() t.goto(105, 97) t.setheading(20) t.begin_fill() t.pendown() t.circle(30, 230) t.setheading(0) t.circle(-37, 90) t.end_fill() # 头部轮廓 t.penup() t.goto(-67, 140) t.setheading(30) t.pendown() t.circle(-134, 60) t.penup() t.goto(-50, -25) t.setheading(180) t.pendown() t.circle(-100, 30) t.circle(-30, 90) t.setheading(100) t.circle(-200, 20) t.penup() t.goto(50, -25) t.setheading(0) t.pendown() t.circle(100, 30) t.circle(30, 90) t.setheading(80) t.circle(200, 20) # 两虎眼 # 左眼 t.penup() t.goto(-90, 25) t.setheading(-45) t.fillcolor("orange") t.begin_fill() t.pendown() # 椭圆绘制技巧 a = 0.2 for i in range(120): if 0 <= i < 30 or 60 <= i < 90: a = a + 0.1 t.lt(3) # 向左转3度 t.fd(a) # 向前走a的步长 else: a = a - 0.1 t.lt(3) t.fd(a) t.end_fill() t.fillcolor("pink") t.penup() t.goto(-53, 43) t.setheading(0) t.begin_fill() t.pendown() t.circle(19, 360) t.end_fill() t.penup() t.pensize(4) t.goto(-60, 57) t.setheading(30) t.pendown() t.circle(-12, 60) # 右眼 t.penup() t.goto(90, 25) t.setheading(45) t.pensize(2) t.fillcolor("orange") t.begin_fill() t.pendown() # 椭圆绘制技巧 a = 0.2 for i in range(120): if 0 <= i < 30 or 60 <= i < 90: a = a + 0.1 t.lt(3) # 向左转3度 t.fd(a) # 向前走a的步长 else: a = a - 0.1 t.lt(3) t.fd(a) t.end_fill() t.fillcolor("pink") t.penup() t.goto(53, 43) t.setheading(0) t.begin_fill() t.pendown() t.circle(13, 360) t.end_fill() t.penup() t.pensize(4) t.goto(60, 57) t.setheading(150) t.pendown() t.circle(12, 60) # 鼻子和嘴吧 t.penup() t.goto(-16, 20) t.setheading(-90) t.fillcolor("pink") t.begin_fill() t.pendown() a = 0.2 for i in range(120): if 0 <= i < 30 or 60 <= i < 90: a = a + 0.03 t.lt(3) t.fd(a) else: a = a - 0.03 t.lt(3) t.fd(a) t.end_fill() t.penup() t.goto(-24, 0) t.setheading(-60) t.pendown() t.circle(28, 120) # 小老虎肢体 # 左肢 t.color("orange") t.penup() t.goto(-65, -24) t.setheading(-140) t.begin_fill() t.pendown() t.circle(100, 40) t.setheading(180) t.circle(30, 40) t.setheading(-40) t.circle(40, 40) t.setheading(-150) a = 0.5 for i in range(120): if 0 <= i < 30 or 60 <= i < 90: a = a + 0.05 t.lt(3) # 向左转3度 t.fd(a) # 向前走a的步长 elif 30 <= i < 60 or 90 <= i < 100: a = a - 0.05 t.lt(3) t.fd(a) t.setheading(93) t.circle(-150, 30) t.end_fill() t.penup() t.goto(-85, -115) t.setheading(-150) t.color("pink", "pink") t.begin_fill() t.pendown() a = 0.3 for i in range(120): if 0 <= i < 30 or 60 <= i < 90: a = a + 0.03 t.lt(3) # 向左转3度 t.fd(a) # 向前走a的步长 else: a = a - 0.03 t.lt(3) t.fd(a) t.end_fill() # 每个脚趾绘制函数 def toe(x, y): t.begin_fill() t.goto(x, y) t.circle(3, 360) t.end_fill() t.penup() toe(-98, -120) toe(-96, -110) toe(-88, -105) toe(-80, -105) # 右肢 t.color("orange") t.penup() t.goto(65, -24) t.setheading(-40) t.begin_fill() t.pendown() t.circle(-100, 40) t.setheading(0) t.circle(-30, 40) t.setheading(-140) t.circle(-40, 40) t.setheading(-30) a = 0.5 for i in range(120): if 0 <= i < 30 or 60 <= i < 90: a = a + 0.05 t.rt(3) # 向左转3度 t.fd(a) # 向前走a的步长 elif 30 <= i < 60 or 90 <= i < 100: a = a - 0.05 t.rt(3) t.fd(a) t.setheading(87) t.circle(150, 30) t.end_fill() t.penup() t.goto(85, -115) t.setheading(150) t.color("pink", "pink") t.begin_fill() t.pendown() a = 0.3 for i in range(120): if 0 <= i < 30 or 60 <= i < 90: a = a + 0.03 t.lt(3) # 向左转3度 t.fd(a) # 向前走a的步长 else: a = a - 0.03 t.lt(3) t.fd(a) t.end_fill() t.penup() toe(98, -120) toe(96, -110) toe(88, -105) toe(80, -105) t.goto(-57, -140) t.color("orange") t.setheading(-20) t.pendown() t.circle(165, 40) t.penup() t.goto(0, 180) t.write("祝大家虎年快乐,虎虎生威!", align="center", font=("Times", 28, "bold")) t.color("black") t.penup() t.goto(0, 80) t.write("王", align="center", font=("Times", 38, "bold")) t.penup() t.goto(0, -5) t.write("一 一", align="center", font=("Times", 18, "bold")) t.goto(0, -15) t.write("一 一", align="center", font=("Times", 18, "bold")) t.goto(0, -25) t.write("一 一", align="center", font=("Times", 18, "bold"))# 弹窗设置def dow(): window = tk.Tk() width = window.winfo_screenwidth() height = window.winfo_screenheight() a = random.randrange(0, width) b = random.randrange(0, height) window.title('虎来喽!') window.geometry("200x50" + "+" + str(a) + "+" + str(b)) tk.Label(window, text='虎年快乐虎虎生威', # 标签的文字 bg='red', # 背景颜色 font=('..', 17), # 字体和字体大小 width=18, height=2 # 标签长宽 ).pack() # 固定窗口位置 window.mainloop()number=[3,2,1] #储存显示界面倒数数字1,2,3if __name__ == '__main__': turtle.setup(900, 500) #调画布的尺寸 for i in number: turtle.screensize(50, 50, bg='yellow') draw_0(i) clear_screen() turtle.screensize(50, 50, bg='yellow') draw_1() clear_screen() turtle.screensize(50, 50, bg='yellow') laohu() time.sleep(5) threads = [] for i in range(100): # 需要的弹框数量 t = threading.Thread(target=dow) threads.append(t) time.sleep(0.01) threads[i].start()
看完上述内容,你们对Python打造虎年祝福神器的示例代码怎么写有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
老虎
步长
位置
海龟
画笔
祝福
文字
快乐
虎虎生威
大小
字体
宋体
技巧
标签
椭圆
生威
界面
箭头
颜色
虎虎
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
镇赉软件开发文档
湖南大学网络安全研究生专业
服务器硬件安全风险
北京达梦数据库技术有限公司
lol网一的服务器在哪
涉密系统集成包含软件开发吗
ibm服务器质量
数据库中列明是中文
服务器ssl证书如何导出
医疗保健数据库安全信号检测
不知道服务器地址如何重新设置
湖南新一代网络技术代理商
服务器硬盘挂台式机分区不了
tcp 服务器 源码
如何申请数据库基因列表
数据库查询方法
服务器无法管理
网络安全技术支撑单位作用
周鸿祎国家网络安全宣传
湖南省网络安全协会
企业知识数据库
数据库多大内存
网络安全导论平台
信息网络技术会考知识点
网络技术部部门介绍结尾
在二本学校学习软件开发
国税优化管理服务器
主机网络安全策略的优势
软件开发适合用什么语言
ark服务器管理员工具