發表文章

目前顯示的是有「Lambda」標籤的文章

Python可以這樣玩(14):廣告流水燈

圖片
先準備下面的實驗器件,如果還沒有這些東西,務必跑一趟光華商場,在新大樓以及八德路對面的地下室都買的到。 l    Arduino UNO 開發板一個 l    麵包板一個 l    Led 燈: 6 個,最好是紅、黃、綠各兩個。 l    220Ω 的電阻: 6 個,我買的一組 220Ω 電阻是五個,少一個可以用 1KΩ 電阻代替,亮度會低一點,不會燒掉。 l    多彩麵包板實驗跳線:若干 單獨看下面的概要圖,其實接法很簡單,數位 PIN 1-6 ( 下圖有小錯誤,請不要接 PIN 0 ,從 PIN 1 開始接,我在連接 PIN 0 的時候上傳發生問題,應該是因為 PIN 0 同時有 RX 的作用,會與上傳的 READ 動作衝突,因為上傳的動作對板子而言就是 READ) 接出來六個電阻與 LED ,最後全部接地。 不過看到下面這張圖,可能就會亂了: 這就是我們要練習的地方,凡是如果沒有親自動手做,只是在平板上面滑手指,永遠不會進步。現在試著從 PIN 1 的正極開始,一條一條接到 PIN 6 ( 也要跳過 PIN 0) 。接線的時候,請將連接電腦的 USB 街頭拔開。 實驗原理 在生活中我們經常會看到一些由各種顏色的 LED 燈組成的廣告燈 ( 例如台灣的檳榔攤 ) ,廣告燈上各個位置上的 LED 燈不斷的亮滅變化,就形成各種不同的效果。本節實驗就是利用 LED 燈程式設計模擬廣告燈的效果。 在程式中我們設置 LED 燈亮滅的次序和時間,這樣就可以組成不同的效果。我們提供幾個不同的樣式。 樣式一副程式: LED 首先從左邊的綠燈開始間隔 200ms 依次點亮六個 LED 燈,如上圖,接著從右邊的綠燈開始間隔 200ms 依次熄滅六個 LED 燈 ( 左右先別太在意,如果按照前面的接法,由於是反過來,會是右邊開始 ) 。 燈閃爍副程式:六個 LED 燈首先全部點亮,接著延時 200ms ,最後六個 LED 燈全部熄滅,這個過程迴圈兩次就實現了閃爍的效果。 樣式二副程式:設置 k 和 j 的值讓中間的兩個黃燈亮先亮,接著讓挨著兩...

Python可以這樣玩(6):函數設計與使用

恭喜你,上完這一課之後,你就學會了 Python 的基礎程式設計技巧,如果你有把每一個習題做完,那麼你就可以告訴別人說你會 Python 了。當然,Python 的範圍非常廣,在我的玩 Python 的系列中,我會把好玩的東西帶出來,之後,才會有個別深入的探討。 函數的概念來自於數學,當然,Python 做的一些變形,基本概念如下: 輸入 à 函數 à 輸出 這是函數的基本架構,對於輸入和輸出,是有彈性的,可以同時有輸入有輸出,可以只有輸入或只有輸出,也可以沒有輸入也沒有輸出,當然,這種函數很奇怪。更厲害的是,不但可以有多個輸入,還可以有多個輸出 (一般我們學的數學函數 y = f(a,b) 不會出現多個輸出,所以一般的程式語言也都沒有支援多個輸出)。 y = f(x) y = f() f(x) y = f(a, b, c) x, y = f(a, b, c)      基本語法 當然,程式語言的寫法與數學不同, Python 的函數語法如下: def 函數名稱 ([ 參數列表 ]):     函數本體     [return 變數列表 ] 我們用一個例子說明,如果我們要算兩場遊戲的平均分數,可以直接在主程式裡面寫 (game1 + game2) / 2 ,但是,如果這個算是會出現很多次,就可以考慮也成函數 y = average(a, b) ,如下: >>> def average(a, b):     avg = (a + b) / 2     return avg >>> game1 = 80 >>> game2 = 90 >>> game_avg = average(game1, game2) >>> game_avg 85.0 >>>   Python 跟其他程式語言如 C++ 、 Java 最不同的地方,就是可以傳回兩個以上的值,延續上個例...