纽约时间比加州时间早三个小时,New York is 3 hours ahead of California

但加州时间并没有变慢。but it does not make California slow.

有人22岁就毕业了,Someone graduated at the age of 22,

但等了五年才找到稳定的工作!but waited 5 years before securing a good job!

有人25岁就当上CEO,Someone became a CEO at 25,

却在50岁去世。and died at 50.

也有人直到50岁才当上CEO,While another became a CEO at 50,

然后活到90岁。and lived to 90 years.

有人单身,Someone is still single,

同时也有人已婚,while someone else got married,

也有人又恢复单身了。someone is single again.

欧巴马55岁就退休,Obama retires at 55,

川普70岁才开始当总统 。but Trump starts at 70.

世上每个人本来就有自己的发展时区。Absolutely everyone in this world works based on their Time Zone.

身边有些人看似走在你前面,People around you might seem to go ahead of you,

也有人看似走在你后面。some might seem to be behind you.

但其实每个人在自己的时区有自己的步程。But everyone is running their own RACE, in their own TIME.

不用嫉妒或嘲笑他们。Don’t envy them or mock them.

他们都在自己的时区里,你也是!They are in their TIME ZONE, and you are in yours!

生命就是等待正确的行动时机。Life is about waiting for the right moment to act

所以,放轻松。So, RELAX.

你没有落后。You’re not LATE.

你没有领先。You’re not EARLY.

在命运为你安排的属于自己的时区里,一切都准时。You are very much ON TIME, and in your TIME ZONE Destiny set up for you.

七夕到了,作为独自一人的你,是否会有那么一丢丢失落呢,在这个特殊的日子,再好的代码可能也无法挽救你失落的心,但诗和python也许可以。如果你认真读了上面的诗,会有那么一丝丝安慰,别着急,满满来,这一篇,绝对是最温情的Python教程。就像诗中所说,属于每个人的美好,总会到来,而这之前,请过好自己,做好迎接美好的准备,有时候,你不缺遇到美好的机遇,只差抓住美好的能力。让我们来提示能力吧,最后会有安利诗句和视频哦,温馨属于我们每个不放弃自我的人。

1、代码与解释

"""

Tkinter库属于Python的GUI编程部分。

Python提供了多个图形开发界面的库,

常用的有Tkinter,xwPython,Jython。Tkinter是Python的标准GUI库,内置在Python中,

不需要额外安装,对于一些简单的图形界面可以轻松实现。

如果PyCharm安装PIL安装失败的话,请在Pyharm下面的控制台直接命令安装:pip install Pillow

"""

import tkinter as tk #Tkinter:最终的GUI实现;

from PIL import Image, ImageTk #处理图像,在最后画布背景中使用;

from time import time, sleep #处理时间,完成时间生命周期的更新迭代;

from random import choice, uniform, randint #随机产生数字,定义燃放过程中的随机变量;

from math import sin, cos, radians #数学函数方法,计算燃放移动使用;

# 设置重力参数

GRAVITY = 0.05

# 设置随机的颜色列表

colors = ['red', 'blue', 'yellow', 'white', 'green', 'orange', 'purple', 'seagreen', 'indigo', 'cornflowerblue']

#定义一个通用的烟花颗粒的类

class part:

def __init__(self, cv, idx, total, explosion_speed, x=0., y=0., vx=0., vy=0., size=2., color='red', lifespan=2,

**kwargs):

self.id = idx #每个烟花中颗粒的标识;

self.x = x #烟花的x轴;

self.y = y #烟花的y轴;

self.initial_speed = explosion_speed

self.vx = vx #在x轴中颗粒的速度;

self.vy = vy #在y轴中颗粒的速度;

self.total = total #每个烟花的颗粒数量;

self.age = 0 #颗粒已经在背景度过的时间;

self.color = color #颜色;

self.cv = cv #背景;

self.cid = self.cv.create_oval(

x - size, y - size, x + size,

y + size, fill=self.color)

self.lifespan = lifespan

#通过判断颗粒状态更新颗粒的生命时间;

def update(self, dt):

self.age += dt

# 颗粒爆炸

if self.alive() and self.expand():

move_x = cos(radians(self.id * 360 / self.total)) * self.initial_speed

move_y = sin(radians(self.id * 360 / self.total)) * self.initial_speed

self.cv.move(self.cid, move_x, move_y)

self.vx = move_x / (float(dt) * 1000)

# 颗粒降落

elif self.alive():

move_x = cos(radians(self.id * 360 / self.total))

self.cv.move(self.cid, self.vx + move_x, self.vy + GRAVITY * dt)

self.vy += GRAVITY * dt

# 如果颗超过最长持续时间,颗粒消失

elif self.cid is not None:

cv.delete(self.cid)

self.cid = None

# 定义爆炸的时间

def expand(self):

return self.age <= 1.2

# 检查颗粒在生命周内是否还存在

def alive(self):

return self.age <= self.lifespan

"""

上面完成了一个通用的烟花颗粒类的实现,下面就开始烟花燃放的模拟循环过程:通过递归不断循地在背景中产生新的烟花。

首先定义一个 simulate 模拟的函数,在函数中定了一些参数:

t:时间戳;

explode_points:烟花爆炸点列表,供后续更新使用;

num_explore:随机的烟花数量;

然后在所有的烟花数量中循环创建所有的烟花颗粒类,当然在每次循环中颗粒类都需要设置一定的属性参数,参数多是随机产生:

objects:存放所有的颗粒对象;

x_cordi,y_cordi:随机产生烟花在背景中的x,y坐标位置(50,550);

speed:随机产生颗粒移动速度(0.5,1.5);

size:随机产生颗粒大小(0.5,3);

color:选择颜色随机列表中的颜色;

total_particles:随机产生每个烟花中所有颗粒的数量;

有了这些参数,我们就可以定义循环产生每个颗粒对象了,并将每个烟花的所有颗粒对象储存在objects中。也就是说explore_points是列表中套列表,内层列表是每个烟花的所有颗粒对象,外层列表是所有烟花。

所有的颗粒对象完成后,就开始对每个颗粒的生命时间进行更新,且总时间设定在1.8秒以内。最后通过root递归使烟花可以一直在背景中燃放。

"""

def simulate(cv):

t = time()

explode_points = []

wait_time = randint(10, 100)

numb_explode = randint(6, 10)

# 循环创建所有的烟花颗粒

for point in range(numb_explode):

objects = []

x_cordi = randint(50, 950)

y_cordi = randint(50, 150)

speed = uniform(0.5, 1.5)

size = uniform(0.5, 3)

color = choice(colors)

explosion_speed = uniform(0.2, 1)

total_particles = randint(10, 50)

for i in range(1, total_particles):

r = part(cv, idx=i, total=total_particles, explosion_speed=explosion_speed, x=x_cordi, y=y_cordi,

vx=speed, vy=speed, color=color, size=size, lifespan=uniform(0.6, 1.75))

objects.append(r)

explode_points.append(objects)

total_time = .0

# 保持在1.8秒内进行更新

while total_time < 1.8:

sleep(0.01)

tnew = time()

t, dt = tnew, tnew - t

for point in explode_points:

for item in point:

item.update(dt)

cv.update()

total_time += dt

# 通过递归持续不断的在背景中添加新烟花

root.after(wait_time, simulate, cv)

def close(*ignore):

"""停止模拟循环,关闭窗口"""

global root

root.quit()

"""

以上代码部分均与Tkinter无关,只是定义了颗粒对象以及模拟颗粒生命周期的全过程,下面将使用Tkinter完成最终的效果。

root:Tkinter类的对象;

cv:定义了Tkinter中背景画布对象,其中height和width参数可根据实际进行调整;

image:打开的图像对象,图像将被作为画布中的背景,图像可根据自己喜好自行选择;

photo:使用ImageTk定义了Tkinter中的图像对象;

然后将在画布对象上创建一个图像(使用定义的photo对象作为参数),最后调用Tkinter对象root进行持续不断地simulate模拟过程。

"""

if __name__ == '__main__':

root = tk.Tk()

cv = tk.Canvas(root, height=640, width=959)

# 自己选择一个好的图像背景填充画布

image = Image.open("image.jpeg")

photo = ImageTk.PhotoImage(image)

cv.create_image(0, 0, image=photo, anchor='nw')

cv.pack()

root.protocol("WM_DELETE_WINDOW", close)

root.after(100, simulate, cv)

root.mainloop()

2、最终效果

3、安利1:《热爱生命》

我不去想,是否能够成功,既然选择了远方,便只顾风雨兼程。

我不去想,能否赢得爱情,既然钟情于玫瑰,就勇敢地吐露真诚。

我不去想,身后会不会袭来寒风冷雨,既然目标是地平线,留给世界的只能是背影。

我不去想,未来是平坦还是泥泞,只要热爱生命,一切,都在意料之中。

4、安利2:电影《心灵捕手》

5、如果还感觉有那么一丝丝失落,欢迎在下面留言,可三陪:陪唠嗑、陪吃鸡、陪lol

python七夕快乐_用python度过一个温馨的单身七夕节-安利篇相关推荐

  1. python圣诞节快乐_用python让大白对你说圣诞快乐

    这是整体的效果: 话不多说,直接上代码: # coding=utf-8 # This is a sample Python script. import turtle as t import time ...

  2. python七夕快乐_用22种语言祝大家七夕节快乐!

    原标题:用22种语言祝大家七夕节快乐! C:printf("祝大家七夕快乐!"); C++ : cout< QBasic : Print "祝大家七夕快乐!&quo ...

  3. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

  4. python 概率分布模型_使用python的概率模型进行公司估值

    python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...

  5. 用python读取股票价格_使用Python写一个量化股票提醒系统

    大家在没有阅读本文之前先看下python的基本概念, Python是一种解释型.面向对象.动态数据类型的高级程序设计语言. Python由Guido van Rossum于1989年底发明,第一个公开 ...

  6. python网页版_经典python学习教程:20行代码打造一个微信群聊助手,解放双手

    今天的Python学习教程教大家如何用20行Python代码实现微信群聊助手,可以用来活跃群气氛,好多群主创建完群后,拉完一群人,之后就一片寂静,有个群聊助手,就可以帮忙活跃群里气氛,通过今天在自己的 ...

  7. python自动上传图片_使用Python实现一个简单的图片上传存储服务

    使用flask实现的一个简单的图片上传服务 设计初衷 对于图片的存储,有很多选择,一般采用云服务如(七牛,又拍等),但是国内的服务像七牛 自定义域名竟然需要域名备案(Excuse me,当初就是因为备 ...

  8. 一个星期学会python可能吗_学习python的一周

    int.float complex: z.real; z.imag 复数不可以直接转换成整数或者浮点数 算术运算符(x//y取整:x%y取余:x**y: x的y次幂=pow(x,y):divmod(x ...

  9. python宣传海报_用Python做一个令人发疯的海报

    Python可以做海报? Python真的可以做海报吗? Python做海报,你确定不是在逗我? 重要的问题问了三遍,答案是真的可以! 今天我们就来用Python的一个比较好玩的模块来进行创作---- ...

最新文章

  1. java 反正多次重复提交_java web开发时防止刷新后的重复提交
  2. 马来西亚国立大学的计算机,要拿到马来西亚国立大学的 offer难吗?
  3. 新建maven(servlet项目) 引入不了HttpServlet
  4. html 无效源,IE bug无效源HTML5音频 - 解决方法
  5. 在浏览器中进行深度学习:TensorFlow.js (十二)异常检测算法
  6. rtl8188eu无线网卡驱动linux,rtl8188eu驱动下载-rtl8188eu无线网卡驱动程序v1.0 官方版 - 极光下载站...
  7. ORA-01261: Parameter db_recovery_file_dest destination string cannot be translated
  8. nepctf2021
  9. Windows命令行打开常用设置/控制面板功能
  10. 运营干货:虾皮店铺装修怎么做?
  11. [信息论]信道容量迭代算法程序设计(基于C++Matlab实现)
  12. 电子杂志制作软件iebook超级精灵2008金牌版 真实体验[转]
  13. js微信禁用右上角的分享按钮,,和vue中微信页面禁用右上角的分享按钮的问题
  14. 第八周 项目5-计数的模式匹配
  15. 计算机音乐管弦乐研究现状,【音乐百科】你是否了解管弦乐与管弦乐团的诞生发展脉络?...
  16. STM32F103C8T6 LD3320语音识别模块非特定识别人声 离线控制 智能家居 开发板
  17. 度过Android开发第一关——配置环境
  18. 北京工作三年程序员,2018年4~5月面试经历
  19. pandas计算含缺失值中列平均值_Pandas之DataFrame基本操作
  20. 【公开课】印度理工学院 - CMOS射频集成电路(L3)课堂笔记

热门文章

  1. 学计算机基础微课视频教程,大学计算机基础实践教程(Windows 10+Office 2016)(微课版)...
  2. xml对java通讯录的解析_Dom4j解析xml格式通讯录文档
  3. 如何管理3D制图软件停靠窗口?
  4. Vue—keepAlive 动态管理页面缓存
  5. PHP网站安装界面,网站-织梦-以及看不到织梦安装界面-织梦安装界面空白
  6. 斯坦福大学公开课:iOS 8开发
  7. 亚马逊卖家做TikTok的思路及步骤
  8. 时间轴_抖音电商业务发展历程
  9. 第四天 可用试验环境和创建快照
  10. 一文了解 Java 中的构造器