show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- time 是一个
module
- import time 可以做 和时间相关的 事情
- time.time()
- 得到 当前时间戳
- 也就是 Epoch
- time.localtime()
- local为本地
- 得到 本地时间元组
- time.asctime()
- asc 为 ascii
- 得到 时间日期字符串
- 完整写法为
- 三个函数层层嵌套
- asc_time = time.asctime(time.localtime(time.time()))
- 简略的写法为
- asc_time = time.asctime()
-
可以自己定义层层嵌套的函数吗?
-
都是层层嵌套调用
-
一层层嵌套的
-
这次我们来画一颗松树
- 松树可以分成两块
- 树冠
- 树干
- 那么我们来定义函数
- 具体怎么画呢?
- 可以出现
- 但是有点像一个箭头
draw_pine_triangle
专门画三角
def draw_pine():
draw_pine_head()
draw_pine_body()
def draw_pine_head():
draw_pine_triangle()
draw_pine_triangle()
def draw_pine_triangle():
for i in range(6):
for j in range(6-i):
print(" ",end="",sep="")
for k in range(2*i+1):
print("*",end="",sep="")
print()
def draw_pine_body():
for i in range(5):
for j in range(5):
print(" ",end="",sep="")
for k in range(3):
print("*",end="",sep="")
print()
for i in range(6):
for j in range(6-i):
print(" ",end="",sep=",")
if __name__ == '__main__':
draw_pine()
- 效果还可以
- 不过太固定了
- 可以给一个数量参数
- 来决定树的大小么?
def draw_pine(n=5):
draw_pine_head(n)
draw_pine_body(n)
def draw_pine_head(n):
draw_pine_triangle(n)
draw_pine_triangle(n)
def draw_pine_triangle(n):
for i in range(n):
for j in range(n+1-i):
print(" ",end="",sep="")
for k in range(2*i+1):
print("*",end="",sep="")
print()
def draw_pine_body(n):
for i in range(n):
for j in range(n):
print(" ",end="",sep="")
for k in range(3):
print("*",end="",sep="")
print()
for i in range(n+1):
for j in range(n+1-i):
print(" ",end="",sep=",")
if __name__ =='__main__':
draw_pine(5)
- n=6
- n=9
- 我们试着调试一下
- step into
draw_pine_triangle
- 我们一步步step into进去之后
- 看到一层层函数的调用
- 压成的一个函数堆栈
- 好像一层层下命令
- 当然上面还有python来对draw_pine调用(call)
- 函数调用就像一个大蒲扇
- 从主干开始
- 有各种分支
- 最终最主要的还是主干
- 就像天津海河
- 天津号称
- 九河下梢天津卫
- 三道浮桥两道关
- 无数支流汇成九条河
- 九条河汇成海河入海
- 海河虽然很短
- 起名字还得是海河水系
- 他是汇总
- 起关键作用
- 就像大蒲扇的手柄
- 原来写在一个函数里面的
- 现在细分成了多个函数
- 增加了颗粒度
细颗粒度 | 粗颗粒度 |
---|---|
Fine-grained | Coarse-grained |
指代码被分解为较小的、相对独立的单元 | 代码被组织成较大的模块或函数,执行相对复杂的任务 |
这样的代码通常更加灵活,因为可以对小的单元进行独立修改和测试,但也可能导致代码结构较为复杂,因为有更多的小单元需要管理。 | 这种代码可能更容易理解整体的逻辑,但在修改时可能会影响较大的范围。 |
- 对齐颗粒度是什么意思?
- Aligning Granularity 通常指的是
- 在不同层次或组件之间调整和统一处理数据、任务或操作的精细程度
- 以确保系统的高效、一致和可管理性
- 交流在同一位面
- 要抽象就都抽象
- 要细节就都细节
- 定义了四个函数
- 函数可以调用函数
- 每个函数有自己的代码段
- 从零开始
- 完成一系列指令
- 产生返回返回值
- 并且return回到调用的位置
- 继续进行
- 为什么要搞成这样一层层的呢?
- 我们先去总结一下
- 我们这次完成了画松树工作
- 通过一层层的工作的细分
- 定义了五个函数
- 然后使用函数调用完成工作
- 每个函数都有自己的代码段
- 负责各自的任务
- 如何理解这个职业分工各司其职呢?🤔
- 我们下次再说👋