说明:

该博客主要完成以下几个方面的功能:

1.元旦节日倒计时代码的实现

2.使用python源码“绘制圣诞树”

3.使用python绘制“跨年烟花”

4.使用python 绘制“爱心”

呈现方式:代码和截图

1.元旦倒计时代码:

输入相应的节日时间,可以计算任何节日的倒计时。

# -*- coding='utf-8' -*-
'''
功能:基于python的元旦倒计时代码
作者:Pegasus
时间:2022/12/09
'''
# 导入所需要的功能模块
import datetime
import sys
import math
import time
# 定义新的一年日期
spring = datetime.datetime(2023, 1, 1, 0, 0, 0)  # 新的一年的日期def caldays():while True:# 获取当前的日期today = datetime.datetime.now()# 新年日期减去当前日期    day = (spring - today).days  # 得到秒数second = (spring - today).seconds # 计算秒sec = second % 60# 计算分minute = second / 60 % 60# 计算小时hour = second / 60 / 60# 计算天数if hour > 24:hour = hour - 24hour = math.floor(hour)  # 去掉小数点,向下取整minute = math.floor(minute)  # 去掉小数点,向下取整# 输出结果sys.stdout.write("离2023年元旦还有" + str(day) + "天" + str(hour) + "小时" + str(minute) + "分钟" + str(sec) + "秒" + '\r')sys.stdout.flush()time.sleep(1)print("离2023年元旦还有" + str(day) + "天" + str(hour) + "小时" + str(minute) + "分钟" + str(sec) + "秒" + '\r')if __name__ == '__main__':caldays()

结果展示:

2.绘制圣诞树代码:

主要使用turtle库,绘制彩色圣诞树。

# -*- coding='utf-8' -*-
'''
功能:基于python的圣诞树绘制
作者:Pegasus
时间:2022/12/09
'''#导入turtle库import turtle#设置屏幕大小screen = turtle.Screen()screen.setup(800,600)#获取画笔并设置一些属性:圆形、红色、快circle = turtle.Turtle()circle.shape('circle')circle.color('red')circle.speed('fastest')#抬起画笔circle.up()#重新获取画笔square = turtle.Turtle()#重新设置画笔属性:四方形、绿色、快square.shape('square')square.color('green')square.speed('fastest')#重新抬起画笔square.up()#跳到指定坐标位置circle.goto(0,280)#复制当前图形circle.stamp()k = 0for i in range(1, 17):y = 30*ifor j in range(i-k):x = 30*jsquare.goto(x,-y+280)square.stamp()square.goto(-x,-y+280)square.stamp()if i % 4 == 0:x = 30*(j+1)circle.color('red')circle.goto(-x,-y+280)circle.stamp()circle.goto(x,-y+280)circle.stamp()k += 2if i % 4 == 3:x = 30*(j+1)circle.color('yellow')circle.goto(-x,-y+280)circle.stamp()circle.goto(x,-y+280)circle.stamp()square.color('brown')for i in range(17,20):y = 30*ifor j in range(3):x = 30*jsquare.goto(x,-y+280)square.stamp()square.goto(-x,-y+280)square.stamp()turtle.exitonclick()

结果:

3.跨年烟花代码:

主要使用tkinter绘制界面,使用多线程开启烟花画面,绘制结果为动图。

# -*- coding: utf-8 -*-import math, random,time
import threading
import tkinter as tk
import re
#import uuidFireworks=[]
maxFireworks=8
height,width=600,600class firework(object):def __init__(self,color,speed,width,height):#uid=uuid.uuid1()self.radius=random.randint(2,4)  #粒子半径为2~4像素self.color=color   #粒子颜色self.speed=speed  #speed是1.5-3.5秒self.status=0   #在烟花未爆炸的情况下,status=0;爆炸后,status>=1;当status>100时,烟花的生命期终止self.nParticle=random.randint(20,30)  #粒子数量self.center=[random.randint(0,width-1),random.randint(0,height-1)]   #烟花随机中心坐标self.oneParticle=[]    #原始粒子坐标(100%状态时)self.rotTheta=random.uniform(0,2*math.pi)  #椭圆平面旋转角#椭圆参数方程:x=a*cos(theta),y=b*sin(theta)#ellipsePara=[a,b]self.ellipsePara=[random.randint(30,40),random.randint(20,30)]   theta=2*math.pi/self.nParticlefor i in range(self.nParticle):t=random.uniform(-1.0/16,1.0/16)  #产生一个 [-1/16,1/16) 的随机数x,y=self.ellipsePara[0]*math.cos(theta*i+t), self.ellipsePara[1]*math.sin(theta*i+t)    #椭圆参数方程xx,yy=x*math.cos(self.rotTheta)-y*math.sin(self.rotTheta),  y*math.cos(self.rotTheta)+x*math.sin(self.rotTheta)     #平面旋转方程self.oneParticle.append([xx,yy])self.curParticle=self.oneParticle[0:]     #当前粒子坐标self.thread=threading.Thread(target=self.extend)   #建立线程对象def extend(self):         #粒子群状态变化函数线程for i in range(100):self.status+=1    #更新状态标识self.curParticle=[[one[0]*self.status/100, one[1]*self.status/100] for one in self.oneParticle]   #更新粒子群坐标time.sleep(self.speed/50)def explode(self):self.thread.setDaemon(True)    #把现程设为守护线程self.thread.start()          #启动线程def __repr__(self):return ('color:{color}\n'  'speed:{speed}\n''number of particle: {np}\n''center:[{cx} , {cy}]\n''ellipse:a={ea} , b={eb}\n''particle:\n{p}\n').format(color=self.color,speed=self.speed,np=self.nParticle,cx=self.center[0],cy=self.center[1],p=str(self.oneParticle),ea=self.ellipsePara[0],eb=self.ellipsePara[1])def colorChange(fire):rgb=re.findall(r'(.{2})',fire.color[1:])cs=fire.statusf=lambda x,c: hex(int(int(x,16)*(100-c)/30))[2:]    #当粒子寿命到70%时,颜色开始线性衰减if cs>70:ccr,ccg,ccb=f(rgb[0],cs),f(rgb[1],cs),f(rgb[2],cs)else:ccr,ccg,ccb=rgb[0],rgb[1],rgb[2]return '#{0:0>2}{1:0>2}{2:0>2}'.format(ccr,ccg,ccb)def appendFirework(n=1):   #递归生成烟花对象if n>maxFireworks or len(Fireworks)>maxFireworks:passelif n==1:cl='#{0:0>6}'.format(hex(int(random.randint(0,16777215)))[2:])   # 产生一个0~16777215(0xFFFFFF)的随机数,作为随机颜色a=firework(cl,random.uniform(1.5,3.5),width,height)Fireworks.append( {'particle':a,'points':[]} )   #建立粒子显示列表,‘particle’为一个烟花对象,‘points’为每一个粒子显示时的对象变量集a.explode()else:appendFirework()appendFirework(n-1)def show(c):for p in Fireworks:                #每次刷新显示,先把已有的所以粒子全部删除for pp in p['points']:c.delete(pp)for p in Fireworks:                #根据每个烟花对象,计算其中每个粒子的显示对象oneP=p['particle']if oneP.status==100:        #状态标识为100,说明烟花寿命结束Fireworks.remove(p)     #移出当前烟花appendFirework()           #新增一个烟花continueelse:li=[[int(cp[0]*2)+oneP.center[0],int(cp[1]*2)+oneP.center[1]] for cp in oneP.curParticle]       #把中心为原点的椭圆平移到随机圆心坐标上color=colorChange(oneP)   #根据烟花当前状态计算当前颜色for pp in li:p['points'].append(c.create_oval(pp[0]-oneP.radius,  pp[1]-oneP.radius,  pp[0]+oneP.radius,  pp[1]+oneP.radius,  fill=color))  #绘制烟花每个粒子root.after(50, show,c)  #回调,每50ms刷新一次if __name__=='__main__':appendFirework(maxFireworks)root = tk.Tk()cv = tk.Canvas(root, height=height, width=width)cv.create_rectangle(0, 0, width, height, fill="black")cv.pack()root.after(50, show,cv)root.mainloop()

结果:

4.绘制爱心代码

主要是使用turtle库绘制。

# -*- coding='utf-8' -*-
'''
功能:基于python的爱心绘制
作者:Pegasus
时间:2022/12/11
'''import turtle
import time
def LittleHeart():for i in range(200):turtle.right(1)turtle.forward(2)# love = input('请输入表白语句,然后回车,默认为"I Love You":\n')
# me = input('请输入要表白的人:\n')
# if love=='':
# # 如果未输入表白语句,则使用默认语句
#     love='I Love you'love='I Love you'
me = '年轻人,就要浪漫点。'turtle.setup(width=900,height=600)  # 爱心的画布的大小
turtle.color('red','red')          # 爱心的颜色及外边笔的颜色
turtle.pensize(5)                   # 画笔的粗细
turtle.speed(1000000)               # 绘制速度turtle.up()                         # 画笔向上turtle.hideturtle()
turtle.goto(0,-180)
turtle.showturtle()
turtle.down()
turtle.speed(5)
turtle.begin_fill()# 开始填充
turtle.left(140)
turtle.forward(224)
LittleHeart()
turtle.left(120)
LittleHeart()
turtle.forward(224)
turtle.end_fill()
turtle.pensize(5)
turtle.up()
turtle.hideturtle()
turtle.goto(0,0)
turtle.showturtle()
turtle.color('#CD5C5C','pink')
turtle.write(love,font=('gungsuh',30,),align="center")
turtle.up()
turtle.hideturtle()if me !='':turtle.color('black', 'pink')time.sleep(2)turtle.goto(180,-180)turtle.showturtle()turtle.write(me, font=(20,), align="center", move=True)window=turtle.Screen()window.exitonclick()

结果:

代码下载链接:

https://download.csdn.net/download/mzl_18353516147/87290601

python绘制圣诞树、烟花、爱心及节日倒计时相关推荐

  1. 如何用Python绘制圣诞树(极其鬼畜视频) - B站小视频

    如何用Python绘制圣诞树(极其鬼畜视频)

  2. Python绘制圣诞树

    python绘制圣诞树终章 一位朋友送给相爱18年的闺蜜的圣诞树,是定制款呐 # 袜子 seth(-20) pensize(2) penup() goto(-30, 130) pencolor(&qu ...

  3. 【turtle库】Python绘制圣诞树

    写在前面: 1.圣诞节快到了,赶紧画个圣诞树给喜欢的人吧! 2.本文仅供学习用,如果代码写的有不好的地方,希望大佬指导改正. 3.代码在下面,需要自取,会附带一部分代码解释,简单易懂,欢迎各位按照自己 ...

  4. 分享10个Python绘制圣诞树的源码,拿来即用

    大家好,我是丁小杰. 圣诞节就要到了,作为一个的"程序猿",怎么能够少得了绘制圣诞树呢,今天就和大家分享 10 个圣诞树的绘制源码,拿来即用! 搞笑版 height = 5 sta ...

  5. 使用Python绘制圣诞树教程(附源代码)

  6. 用python画圣诞树-使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例

    今天为大家介绍几个Python"装逼"实例代码,python绘制樱花.玫瑰.圣诞树代码实例,主要使用了turtle库 Python绘制樱花代码实例 动态生成樱花 效果图(这个是动态 ...

  7. 圣诞节到了,教大家用 Python 绘制几棵圣诞树~

    大家好,我是大飞 今天是圣诞节,先在这里祝大家圣诞节快乐~~,用英语来表达就是 Merry Christmas ~~, 为了贴合这个氛围,今天分享五种用 Python 绘制圣诞树的方法,从基础到高级, ...

  8. 圣诞节要来了,程序员女友用Python画圣诞树的浪漫代码作为最好的礼物

    我从来没有过过一个真正意义上的圣诞节. 没有拥有过圣诞树, 没有和恋人一起看过雪,也没有收过精心准备的圣诞礼物. 我给自己安排很多与节日无关的事来度过那一天. 尽管如此,我还是很期待圣诞节. 哈哈哈哈 ...

  9. 用Python画圣诞树

    Python绘制圣诞树 拿去给自己所思所念之人 from turtle import * import timesetup(500, 500, startx=None, starty=None) sp ...

最新文章

  1. 面向过程(结构化)分析方法与面向对象分析方法的区别
  2. 小黑盒不显示服务器,steam上买的游戏小黑盒不显示 | 手游网游页游攻略大全
  3. 什么样的GPS定位系统最适合做二次开发
  4. Spring Ioc注解式开发中注解的作用
  5. 笔记:C++重载++前后区分
  6. MS SQL自定义函数IsPositiveInteger MS SQL自定义函数IsNumeric 水晶报表使用IEnumerableT数据源...
  7. 尚硅谷_JS DOM编程_学习笔记
  8. python冒泡算法_python_冒泡算法
  9. (二十五)【NIPS 2017】Prototypical Networks for Few-shot Learning
  10. 【CSS3】CSS3文本相关属性大全
  11. SetInterval(循环计时器)
  12. CROC-MBTU 2012, Elimination Round (ACM-ICPC) H DP题目
  13. 报名国电没有计算机二级,想进入国电,捧起“铁饭碗”?没问题,这几个专业助你成功...
  14. 使用datagrid时json的格式
  15. CTA策略:主力连续、全合约模式下回测结果的差异探讨
  16. 小米平板4(Plus) LTE 版本,开通话模式教程(MIUI)
  17. [编程题]山寨金闪闪 (面试题)
  18. 攻防世界Web新手区题解
  19. 洛谷P1757 通天之分组背包
  20. 2013年互联网江湖格局观

热门文章

  1. 这32件小事儿,对考研上岸真的有帮助
  2. 手机自学python_Python 自学(己用)
  3. vs找不到msvcp120d .dll,无法继续执行代码。重新安装可能会解决此问题,亲测有效
  4. java计算机毕业设计视听小说源代码+数据库+系统+lw文档
  5. C# 获取QQ好友列表信息的实现
  6. 二、T100 IQC作业流程
  7. 显示器 Linux 性能 18 (一个命令行工具传递)
  8. 【数据分析】APP活动运营:应关注哪些数据指标(in)
  9. 乐斗至尊 -- 成长记录
  10. 横向联邦学习-梯度安全聚合1