当前位置:首页>python>自学编程第19课:Python time模块——让程序学会“等待”和“计时”

自学编程第19课:Python time模块——让程序学会“等待”和“计时”

  • 2026-10-11 07:44:01
自学编程第19课:Python time模块——让程序学会“等待”和“计时”

昨天放学后,Tyree在玩他自己写的猜数字游戏。

玩了几局后,他跑过来跟我说:“妈妈,每次我输完数字,电脑一下子就告诉我‘大了’‘小了’,太快了,没有悬念。能不能让它慢一点,像电视里抽奖那样,转几圈再出结果?”

我说当然可以,用time.sleep()就可以让程序暂停休息一会再运行。他试了之后,兴奋地喊:“哇,这下有感觉了!”

接着他又问:“那我能算一下我猜一个数字用了多长时间呢?我想知道我最快几秒猜中。”

我说要实现这个功能,就要用到time.time()了。

我教他用time.time()记录开始和结束的时间。他自己折腾了十几分钟,成功给猜数字游戏加上了计时功能。然后他一个人玩了快半个小时,说要打破自己的纪录。

今天就来学习Python里的time模块中最常用的几个功能。它们能让你的程序“慢下来”,也能帮你“掐秒表”,还能告诉你当前的时间。

01

先导入:import time

time是Python自带的,不用装,但用它前必须导入才能用。

import time

很多新手忘了这一行,然后写time.sleep(1),结果报错

NameError: name 'time' is not defined。

Tyree第一次就是这样,他抓着头说“明明书上有time啊”。我让他检查文件开头,他拍了一下脑袋:“哦,我忘导入了!”

我的习惯就是只要用到time,第一时间在文件第一行写上import time,就像进门前先掏钥匙。

02

 sleep:让程序“睡一觉”

sleep的意思是睡觉。你告诉它睡几秒,它就真的停几秒,什么也不做,时间到了才醒过来。

你还可以让程序睡0.5秒(半秒)、0.1秒(一眨眼的功夫),甚至更短。Tyree试着睡了0.01秒,结果几乎没感觉就过去了,他说“这跟没睡一样”。

这个time.sleep()一般可以用到 做倒计时、做动画效果、控制游戏节奏。

Tyree的倒计时代码:

这个程序大家都很熟悉了,前面课程就已经做过,这次只是在程序后面加了个time.sleep(1)。

运行后,你会看到5,4,3,2,1,每个数字停留一秒,然后“轰!”。就像电影里拆弹的紧张时刻。

如果你在sleep期间按下Ctrl+C,程序会被中断(你捕获了异常时)。Tyree有一次想提前结束,按了Ctrl+C,程序直接退出了,他说“电脑竟然不听我话了”。

03

time.time():给程序装一个“秒表”

time.time()返回的是一个很大的浮点数,代表从1970年1月1日0点到现在的秒数。

这个数字本身没什么好看的,但你可以用它来测量时间间隔。

Tyree给自己的猜数字游戏加上了计时:

{end - start:.2f}的意思是保留两位小数。如果直接打印end - start,会出来像3.1415926535这样一长串,看着会很不舒服。

Tyree测试了一次,猜了4次,用了12.35秒。他爸爸猜了3次,用了8.21秒。

Tyree很不服气,又玩了好几局,终于有一次2次就猜中,只花了3.45秒。他得意地说:“我赢了!”

04

time.ctime()和time.localtime()

让电脑报时

time.time()返回的数字太长不好看懂,而用time.ctime()这个返回的数字就变得友好多了,把它变成“ Fri May 22 15:56:36 2026”这种平时看时间的格式。

如果你只想要年、月、日、时、分、秒分开,那就用这个time.localtime()。

# t.tm_year是年, t.tm_mon是月 , t.tm_mday,是日

#t.tm_hour是时, t.tm_min分, t.tm_sec是秒

Tyree用这个写了一个“整点报时器”:每5秒检查一次当前时间,如果分钟和秒都是0,就打印“叮咚,整点啦!”。

他挂了一晚上,整点的时候电脑真的叫了,他说“像老式座钟”。

不过他也发现:如果电脑休眠了,程序就不跑了,所以这个不能当真闹钟用。

05

小项目:反应速度测试器

这个项目Tyree玩得最开心了。电脑随机等2-5秒,然后提示“快按回车!”,你按下回车后,它告诉你用了多少秒。

random.uniform(2,5)是2到5之间的随机小数,比如2.37秒。这样每次等待时间不一样,你没法提前准备。

Tyree测了10次,最快0.18秒,最慢0.47秒。他说:“我以后要练手速,争取到0.1秒。”我说人类极限大概在0.15秒左右,他还不信。

06

今天学到了什么?

暂停 time.sleep(秒) 让程序睡一会儿。

计时开始/结束 time.time() 掐秒表,算时间差。

看当前时间 time.ctime() 电脑告诉你现在几点。

拆解时间 time.localtime() 单独拿年、月、日、时、分、秒。

下一节课我们会用函数把猜数字游戏彻底重构,加上计时、记录最佳成绩、保存文件等功能。

————热门推荐————

自学编程第18课:Python random模块——让程序学会“抽签”和“摇号”

自学编程第17课:变量的作用域——为什么函数里改不了外面的变量?

自学编程第6课:列表+循环+判断(做一个学生成绩分析器)

自学编程第3课:变量与数学计算(做一个年龄计算器)

自学编程第2课:用input让电脑问你名字(做一个打招呼程序)

自学编程第一步:安装Python和Thonny(零基础图文教程)

(本系列教程每天更新,欢迎关注收藏)

最新文章

随机文章