今天也是学python的一天🚩
打卡练习题:菜鸟100实例
006
题目
斐波那契数列
分析
斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。
代码
代码一:
好像可以直接用list结合for循环欸,感觉有点儿意思了,单看结果没差别
li = [1, 1]
num = int(input('显示数列位数(>2):'))
for i in range(num - 2):
a = li[-1] + li[-2]
li.append(a)
print(li)
二:
还是要学习使用递归的
def f(n):
if n == 1 or n == 2:
return 1
else:
return f(n-1) + f(n-2)
print(f(12))
小结
斐波拉契数列似乎有很多解法,也似乎总跟时间复杂度一起出现,等学习时间复杂度后可以再回头看看各种方法之间的差别。
007
题目
将一个列表的数据复制到另一个列表中。
分析
可以用切片、循环、copy()方法
代码
代码一:
# 使用切片[:]
li_1 = [1, 2, 3]
li_2 = li_1[:]
print(li_2)
二:
# 使用copy()方法
li_1 = [1, 2, 3]
li_2 = li_1.copy()
print(li_2)
三:
# 使用循环
li_1 = [1, 2, 3]
li_2 = []
for i in range(len(li_1)):
li_2.append(li_1[i])
print(li_2)
008
题目
输出 9*9 乘法口诀表
分析
使用for循环的嵌套,外层控制行,内层控制列,有九行九列,且每行的列数等于行号
代码
for row in range(1, 10):
for col in range(1, row + 1):
print(f'{row} * {col} = {row * col}', end=" ")
print() # 一行结束换行
009
题目
暂停一秒输出。
分析
用到time模块下的sleep()函数
代码
import time
li = [1, 2, 3, 4, 5]
for i in range(len(li)):
print(li[i])
time.sleep(1) # 暂停一秒
小结
-
time.sleep(secs):secs参数用于指定暂停的秒数,其中它的单位是“s”,可以是小数
-
使用前需要导入time模块
010
题目
暂停一秒输出,并格式化当前时间。
分析
也是对time模块中函数的使用,这里用sleep()和gmtime()函数
代码
import time
for i in range(5):
print(time.strftime("%y-%m-%d %H:%M:%S %b", time.gmtime()))
time.sleep(1)
-----------结果--------------
21-11-25 11:57:53 Nov
21-11-25 11:57:54 Nov
21-11-25 11:57:55 Nov
小结
这个strftime()函数有两个参数,第一个是格式字符串,最后输出结果的样式就由它决定,另一个是struct_time对象,这个也是time模块下的一种类型,年月日等数据都包含在里面,更多细节还是需要另外做笔记。
🆗今日份打卡完成,再次遇见了递归,也见识到了time这个家族能力的冰山一角,明天继续长见识!