
昨天放学后,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课:变量的作用域——为什么函数里改不了外面的变量?
自学编程第2课:用input让电脑问你名字(做一个打招呼程序)
自学编程第一步:安装Python和Thonny(零基础图文教程)
(本系列教程每天更新,欢迎关注收藏)