您好,登录后才能下订单哦!
今天就跟大家聊聊有关Python打造虎年祝福神器的示例代码怎么写,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,其最初的设计是用于编写自动化脚本,随着版本的不断更新和新功能的添加,常用于用于开发独立的项目和大型项目。
2022虎年将至,值此新春佳节之际,各大社区更是你争我赶纷纷发起春节征文活动正当我一筹莫展之际,几位粉丝朋友们的小请求点醒了我:

对呀,我何不用Python画一个老虎出来呢,加之增添几个功能,打造成一款虎年祝福神器!我瞬间灵感爆发,话不多说,先看成品:
首先是刚打开时的倒数界面,神秘感十足:

倒数结束后,来到我们的展示环节:

最后,是我们的成果,一直可爱的小老虎以及满屏的弹窗祝福:

制作过程
在这里,我们使用了Python中的一个非常好玩的库:Turtle,也就是我们常说的海龟画图!不懂的同学可以自行参考学习这篇文章,在这里不做过多的讲解:海龟画图全解–值得你一看!
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()import turtle
import time
import random
import tkinter as tk
import 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,1
def 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)number=[3,2,1] #储存显示界面倒数数字1,2,3 if __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 turtle
import time
import random
import tkinter as tk
import 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,1
def 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,3
if __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打造虎年祝福神器的示例代码怎么写有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。