9、题目:暂停一秒输出。
10、题目:暂停一秒输出,并格式化当前时间。
? ? ? ? 9题和10题其实是一样的题目。9题是任意写一个程序,只要输出的时间有停顿就可以。10题是格式化当前时间,暂停一秒,也就是前后输出的时间会有一秒时间差。鉴于两个题是一样的,我们只需要操作第十题,主要涉及到两点:1是使用time的sleep(secs)函数,参数secs就是停顿的时间。2.是格式化时间,需要用time.strftime()函数。?
import time
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()))
time.sleep(1)
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()))
time.localtime()
? ? ? ? ?python里时间的表达方式有很多。time.time()返回float类型的时间,表示了从1970年1月1日00:00:00开始按秒计算的时间偏移量。同时,也可以以struct_time(元组)的形式展示时间,一共有9个参数,包括年月日时分秒和周几、一年中的第几天以及是否是夏令时。? ? ? ? 代码里用到的两个函数:1? time.localtime()可以返回当前时区的时间,同时time.gmtime()可以返回UTC时区的时间;2? time.strftime()可以把struct_time展示的时间格式化。
?????????同时,时间也可以用datetime来调用。
import datetime
x = datetime.datetime.now() #输出当前时间,年——月——日 时:分:秒.微秒
print(x)
print(x.year)
print(x.strftime("%d")) #strftime里面的参数可以调用时间里的任意一项,如%d代表一个月的第几天
print(datetime.datetime(2021,8,2))
11、题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
? ? ? ? 简单分析后可知,兔子每个月的数量应该是1,1,2,3,5,8,11,19……?也就是说除了前两个月都是1,其他的数字就是它本身的前两个数字之和。写程序时只需要先定义前两个位置为1,其他位置就做循环,每次让它前面两个数字加起来。
sum1 = 1
sum2 = 1
for i in range(1,22):
print(sum1,sum2,end=" ") #输出结果按行展示
sum1 = sum1 + sum2
sum2 = sum1 + sum2
? ? ? ? 可以任意改变i的范围,求前 i 个月每个月兔子的数量。此外,我还定义了一个函数count(month),输入任意的月份都可以出现当月兔子的数量,代码如下:
def count(month):
if month == 1:
return 1
elif month == 2:
return 1
else:
return count(month - 1) + count(month - 2)
|