通過上次的授課經歷,李雷發覺,韓梅梅對圖形繪製這塊很感興趣。因而絞盡腦汁,谷歌百度,尋找各類素材。通過反覆實驗終於完成了備課工做。因而乎掰着手指頭,從週一盼到了週六。python
「梅梅,咱們先看一個神奇的公式,以及如何用python實現它」 git
def fibonacci(n): return (1/math.sqrt(5))*(math.pow((1+math.sqrt(5))/2, n)-math.pow((1-math.sqrt(5))/2, n)) 複製代碼
韓梅梅:「啊,頭好暈」github
李雷:"好吧,咱們舉個例子"bash
假如一月份,咱們有一對小兔子。markdown
月份 | 小兔數量 | 大兔數量 |
---|---|---|
1 | 1 | 0 |
到了二月咱們的小兔子長成了大兔子app
月份 | 小兔數量 | 大兔數量 |
---|---|---|
1 | 1 | 0 |
2 | 0 | 1 |
到了三月,咱們的大兔子生了一對小兔子,如今咱們有一大一小兩對兔子ide
月份 | 小兔數量 | 大兔數量 |
---|---|---|
1 | 1 | 0 |
2 | 0 | 1 |
3 | 1 | 1 |
到了四月,咱們大兔子 又生了一對小兔子,咱們三月的那對小兔子也長成了大兔子。 如今咱們有兩對大兔子,一對小兔子了oop
月份 | 小兔數量 | 大兔數量 |
---|---|---|
1 | 1 | 0 |
2 | 0 | 1 |
3 | 1 | 1 |
4 | 1 | 2 |
到了五月,咱們的兩對大兔子都生了一對小兔子,咱們的那對小兔子長成了大兔子,如今,咱們有3對大兔子,和兩對小兔子。post
月份 | 小兔數量 | 大兔數量 |
---|---|---|
1 | 1 | 0 |
2 | 0 | 1 |
3 | 1 | 1 |
4 | 1 | 2 |
5 | 2 | 3 |
規律:學習
上一月的大兔子+小兔子的數量,等於下一月的大兔子數量, 上一月的大兔子數量等於下一月的小兔子的數量。 大兔子的數量變化的規律就是斐波那契的規律,咱們能夠試着計算它。
#!/usr/bin/env python3 LIMIT = 1474 #122.8年後,月數會超出這個數字,計算機也數不清有多少兔子了。 def fibos(month): fibo_list = [] big = 0 small = 1 for i in range(0, min(month, LIMIT)): fibo_list.append({'month': i+1, 'small': small, 'big': big}) big, small = small+big, big return fibo_list def print_rabbits_fibos(fibos): print("|月份|小兔數量|大兔數量|") print("|:---:|:---:|:---:|") for fibo in fibos: print(f"|{fibo['month']}|{fibo['small']}|{fibo['big']}|") if __name__ == "__main__": print_rabbits_fibos(fibos(12)) 複製代碼
輸出:
月份 | 小兔數量 | 大兔數量 |
---|---|---|
1 | 1 | 0 |
2 | 0 | 1 |
3 | 1 | 1 |
4 | 1 | 2 |
5 | 2 | 3 |
6 | 3 | 5 |
7 | 5 | 8 |
8 | 8 | 13 |
9 | 13 | 21 |
10 | 21 | 34 |
11 | 34 | 55 |
12 | 55 | 89 |
韓梅梅:「兔子好能生呀!」 韓梅梅:「這麼多近親結婚怎麼辦?」 韓梅梅擔心的說。
「額,這不是重點」 李雷冒汗了。
李雷:「天然界不少植物的花序和葉序都和斐波那契數列有關。」
李雷:「咱們還能夠畫出這個數列相應的螺旋線」
from turtle import * import math last_step = 0 this_step = 10 for i in range(8): circle(this_step, 90, int(this_step * (math.pi))) this_step, last_step = this_step + last_step, this_step done() 複製代碼
韓梅梅:「看起來像個鸚鵡螺,看不出和斐波那契有什麼關係啊」 李雷:「咱們能夠標記出數列」
import math from turtle import * from fibos import fibos from math_ex import gold_offset WIN_SIZE = 500 setup(width=WIN_SIZE, height=WIN_SIZE) def fly_home(): offset = gold_offset(WIN_SIZE, 'start') penup() home() forward(offset) right(90) forward(offset) left(270) pendown() def draw_size(radius, fibo): if fibo < 2: return penup() text_pod = radius/2 forward(text_pod) left(90) forward(text_pod) left(90) pendown() dot(3) write(fibo, align='center') penup() forward(text_pod) left(90) forward(text_pod) left(90) pendown() def draw_bound(radius, fibo): for i in range(4): forward(radius) left(90) draw_size(radius, fibo) def draw_fibo(radius): step = int(radius * math.pi/2) circle(radius, 90, step) def draw_bounds(fibo_list, unit): fly_home() pencolor('#3399ff') width(1) for fibo in fibo_list: radius = fibo * unit draw_bound(radius, fibo) forward(radius) left(90) forward(radius) def draw_fibos(fibo_list, unit): fly_home() pencolor('#ff9933') width(2) for fibo in fibo_list: radius = fibo * unit draw_fibo(radius) if __name__ == "__main__": hideturtle() speed(0) fibo_list = fibos(9) unit = 6 draw_bounds(fibo_list, unit) draw_fibos(fibo_list, unit) done() 複製代碼
李雷:「利用這個螺旋咱們還能夠畫一些有趣的圖形」
這些代碼都在:github.com/caojianfeng…
李雷通過一個月的奮戰,終於完成了一個flutter應用的開發。
打算上線了才發現,圖標仍是flutter自帶的圖標呢,趕忙向設計師韓梅梅求救。
設計師韓梅梅拿出準備已久的Logo丟給李雷,李雷傻眼了。
李雷:「怎麼只有一個?」
韓梅梅:「難道安卓和iOS要用不一樣的圖標?」
李雷:「不是啊。一樣的圖標不一樣的尺寸。
安卓圖標五六個 ,iOS圖標十幾個吧。
我給你列個列表吧,尺寸都告訴你。你幫忙resize一下吧。」
韓梅梅:」寶寶內心苦...「
李雷:「嗯,我想一想辦法吧...」
複製代碼
書接上回
看到工程師李雷能用一行命令,更新flutter工程下全部圖標,
韓梅梅深入的體會到,這(zhe)門(ge)語(nan)言(ren)如此優秀,必定不能錯過。
因而找到李雷:
韓梅梅:「李雷,上次見到你用python更新圖標,感受好棒啊」
李雷:「Python確實是很好用的」
韓梅梅:「我能學會嗎」
李雷:「有我在,怎麼可能學不會呢?咱們先從最簡單的Hello world開始吧」
......
複製代碼
學完python3中f-string 格式化固定寬度的數字,
李雷如約上門安裝安裝python,折騰了很大一通李雷和韓梅梅都感受很累。
因而李雷提議到公園玩耍,他提早作足了功課,
學習了不少拍照到知識,終於用上了,尤爲是構圖比例,一概黃金分割。 ...
複製代碼
通過上次的授課經歷,李雷發覺,韓梅梅對圖形繪製這塊很感興趣。
因而絞盡腦汁,谷歌百度,尋找各類素材。通過反覆實驗終於完成了備課工做。
因而乎掰着手指頭,從週一盼到了週六。
「梅梅,咱們先看一個神奇的公式,以及如何用python實現它」
複製代碼
2020年4月4日,一大早,老闆急衝衝的打電話給韓梅梅。
李老闆:「全國網站都灰了,爲啥咱們本身的網站還這麼鮮豔。」
韓梅梅:「好多圖改不過來。」
李老闆:「原本你應該提早準備的。結果搞成如今這麼被動。
咱們是創業公司,每一個員工都應該是創業者。
做爲一個合格的創業者,要有遠見,有自驅,
不要什麼都不考慮,不要什麼都等安排。
若是你以爲本身不想當創業者,那就去找份大廠的工做。
若是你是個創業者,就拿出創業者的勁頭加個班搞定吧。」
還沒等韓梅梅回答,電話就被掛斷了。
複製代碼