上一课的函数只会动手画。今天的函数不画东西,只算一个数交回来。
交给谁?交给调用它的那一行。
return:算完,把结果交出去,函数当场结束。t.forward(grow(i)) 的意思是:先让 grow(i) 交个数字出来,再用这个数字当前进长度。20 * k 但没交出去,调用处拿到的是 None——
t.forward(None) 立刻报 TypeError。算得对,但没交货。盯住函数体:只算了一下,没有交货。
没有 return,调用处拿到的就是 None——不是 20。
print 完全不同:print 是喊给人听,return 是交给程序用。def grow(k): return 20 * k,
然后 for i in range(1,6): t.forward(grow(i)); t.left(90)。return ② 返回值被 forward(...) 用上
③ 长度每次都不同return 20 * k 改成 return 10 * k + 10,看图形怎么变。20 * k 改成 10 * k + 10。forward(grow(i)) 一个字没改,
只换算式,五段长度全变——函数把"怎么算"藏起来,用的人只管要结果。