Python打造虎年祝福神器的示例代码怎么写
发表于:2025-02-24 作者:千家信息网编辑
千家信息网最后更新 2025年02月24日,今天就跟大家聊聊有关Python打造虎年祝福神器的示例代码怎么写,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python是什么Python是
千家信息网最后更新 2025年02月24日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安全错误
数据库的锁怎样保障安全
大数据是数据库研究的最新方向吗
网络安全法正式下发
袋鼠是什么地方的服务器
金蝶kis专业版数据库的应用
云服务器的数据库容量多大
图书馆数据库三个表
审查员用什么检索数据库化学结构
潮浪软件开发
浦东新区技术网络安全质量服务
数据库软件
软件开发比赛主题
dba 数据库管理员
吉林警校网络安全专业
数据库合作协议
网站数据库会被删除吗
没基础学计算机网络技术专业
网络安全公安警察网站
高密电力软件开发
软件开发工作证明
网络安全重点专项2016
软件开发和硬件设计哪个好
二年级网络安全手抄报简单的
软件开发计划要每天吗
网络安全人存在的问题
小学生青少年网络安全
云服务器的数据库容量多大
上市公司软件开发排行
计算机网络及网络安全基础知识
深圳南山教育系统软件开发
vb将数据写入数据库