汪玥彤的學習歷程檔案 - 人工智慧 - Python 入門 |
|
|
Python 入門Python基本語法與練習好了,來實作看看吧!打開 Jupyter Notebook 應用程式、跳出 Jupyter Notebook 的編輯頁面就可以來撰寫我們的程式碼啦。
1. Print:永遠是跟世界打聲招呼的第一個程式print語法是在print函式中放進你要印的東西,比如 print(我要印這個)。說聲 Hello World,跟程式的世界打聲招呼吧!
print的內容可以是變數(variable): print(a),數字(init): print(1234),或是字串(string): print(‘abc123’)。
2. Variable (變數):一切TypeError的泉源上面提到了變數,但這是什麼意思呢? 其實就是幫資料取個名字、把資料儲存起來。比如: 變數 = 資料,a = 123。當我們輸入a、就會找到123。 變數雖然能儲存資料,但資料有很多種類型、所以就會有資料型態(Type)。舉例來說:
數值可以做運算: 也可以使用各種你知道的函數: 但不同的形態運算要注意,不要把字串和數值加在一起、否則會產生TypeError。 記得學會看錯誤訊息再回去看自己寫錯了什麼。 那該怎麼辦呢? 別怕別怕,若要運算則需要做型態轉換,可以用 int(), str(), float() 來轉換變數型態。可以看到下圖,int() 將字串’456’轉成整數、str() 將整數 123 轉成字串。 謹記:「Error都是暫時的,沒有解不掉的Bug,莫忘心靈祥和。」就算身邊沒有程序激勵員也要保持好心情喔(啾咪^_<
3. Input:讓使用者輸入資料唄這邊我們使用的是Python 3的環境,使用的是 input;如果環境是Python 2的朋友注意是用 raw_input噢,Python 2的input有別的意義。 input的功能是讓使用者所有輸入的資料會被當成字串儲存起來,需要時再作轉型。舉例而言:
記得這個數字289是字串的形式喔~
● 小練習 請寫一支Python程式,能讀取兩個整數,並把他們的四則運算印出來。(提示: 用input()印出來的東西是字串, 記得轉型噢!) 4. If-Else 日常的邏輯判斷別說你沒用過 if-else 函數式,我們每天都在面臨 if else 的抉擇──如果(if) 百貨公司周年慶到了: 那就是大採購的時間啦! 否則(else)我們就晚點再買。 照樣造句一下還有──如果 (if)手機快沒電: 我就乖乖回家充電! 否則 (else) 我就繼續抓寶可夢。 來看一下 if-else 語法解說。if 寫完之後接冒號、下一行縮排後開始寫要做什麼事情。注意 else 是否則的意思,就不用再寫一次條件了。 但如果我們不只有兩層 (周年慶就去買東西、否則就等下次),可能有好幾層條件呢? 比如: 如果我們平板電池的電量還很高、就去抓寶可夢;電池電量快沒了、就乖乖回家;如果電池電量普普通通、看看小說就好。 把這件事情用Python表達出來吧! 電池只有50,在30~80之間,因此看看小說就好! if-else主要用在邏輯運算的判斷上:
或是布林值(Boolean):
不小心買到Samsung Note 7、聽說電池快沒電時容易有爆炸的風險,怎麼辦?! 利用邏輯運算來提醒我們這個危機吧! ● 小練習 寫一支Python整數機,第一步讓使用者輸入想要做的符號運算,比如「+, -, *, /」,第二步讓使用者輸入’整數1’和 ‘整數2’,最後讓這兩個整數進行運算。如果輸入的運算符號不是「+, -, *, /」,便輸出「錯誤」。
5. For Loop 轉圈圈吧哈姆太郎如果要把0到9的數字印出來,應該怎麼做呢? 嗯當然你可以這樣做… 但如果今天是要從0印到100呢? (´・ω・`) … 我們之所以寫程式,就是為了要讓程式能自動化地幫忙做一些事情,這樣顯得太沒有效率了。因此在這邊我們需要寫一個「迴圈」(Loop)。首先來介紹一個最基礎的Python迴圈「For Loop」。 比起痛苦地寫十行print,引進For迴圈後、區區兩行便能解決了: 不是很看得懂程式碼的意思嗎? 別緊張,這邊來解釋一下這個式子的涵義。若要枚舉出從0到n-1的數字,寫法是: for [變數名稱] in range(n): (縮排) print([變數名稱]) 來試試看: 在這裡的n=10,是不是把0~9 (n-1)的數字都印出來了呢? 到底range又是什麼意思呢?
事實上 range(n) = range(0, n),簡單來說就是個產生器,你可以在這個range範圍中拿資料、拿完到n-1為止。以range(3)為例,第一次拿到資料0、第二次拿到資料1、第三次拿到資料2,然後就結束了。 讓我們重新看一下for函數結構: for [變數名稱] in range(範圍, 比如從數字X到Y): (縮排) 做一件事 (縮排) 做一件事
瞭解的話,就讓我們來做個小練習吧! ● 小練習 請輸出一個九九乘法表。(提示1: for loop裡面也可以有第二個for loop噢!) 進階版: 如果不希望print出來的結果換行且要有空格,可以使用end=’ ’;若要再換行可使用end=’\n’。 事實上range的數列是有間距的喔! range 的結構是:range(起點, 終點, 間距),其中的間距預設為1 、比如 range(0, 6) = range(0, 6, 1) 。代表從 0 到 5,每次加 1 的意思。 分別印出: (1) 從1到10、每次加2的數列; (2) 從10到2、每次-3的數列 吧! ● 小練習 請做出一支能猜數字的程式:每次讓使用者猜一個整數,若猜對就輸出Bingo;使用者最多可以猜3次。(提示: Bingo後可以使用break來離開迴圈)
6. List:能無限儲存資料的格子想像一下,若今天有三筆資料要計算時,我們會這樣寫: a = 1b = 2c = 3
… 那如果你有成千上萬筆資料呢? 再想像一下,如果不知道使用者要輸入多少資料又要怎麼辦呢? in = input()a = in[0]b = in[1]
這樣真的行嗎… 「神說要有了List,所以有了List。」- 來自深海大鳳梨裡的神祕訊息。繼續運用你的想像力!我們現在有個異次元裡的櫃子,它有無限個格子,第一格可以放東西、第二格也可以放東西…以此類推。 櫃子裡可以放任何東西,我們會用一個數字代表東西放在櫃子中的第幾層格子,這個數字就叫做 Index (索引)。 把櫃子的概念換成 Python 的 List 語法,就會變成:放在第 0 層的變數、放在第 1 層的變數… 這個數字就是 Index(索引),而變數就是我們塞進去的資料。 一個Python的List長相如下,以中括號[] 包起來、逗號, 分隔: a = ['Lynn', 0.87, 1234, True] 這裡的 a 就是一個 List,第 0 格放的是 Lynn 這個字串、第 1 格放的是 0.87 這個浮點數、第 2 格放的是 1234 這個整數、第 3 格放的是 True 這個布林值。 有了格子的概念後,我們可以使用 a[第幾格] 來取出變數,比如 a[0] 代表’Lynn’、a[3] 代表True。可以看到由於 a[4] 並不存在,因此會出現 IndexError的警示。 要如何知道一個List有多長呢? 我們能使用 len([list變數名稱])。 a = [1, 3]len(a) = 2
在拿到 List 的長度後,讓我們能來玩一點變化吧!比如 List 加上上面教學的 For Loop 看看會發生什麼事: 若要更簡潔一點的話,由於 in 這個關鍵字有「在… 之中」的意思,in range(0, 3)代表在0~2之中。因此能改成:
● 小練習 現在有一個 list a = [1, 3, 5, 7, 9],請對每一個元素都平方後印出來,且須將 a 也變成 [1, 9, 25, 49, 81]。 來玩玩更多list的操作吧!
● 小練習 五次數學段考的成績分別為10、30、50、70、90分,算出平均後,老師發現大家考太爛、只好將成績開根號再乘上10 (提示: 成績**0.5*10),再算出一個新平均。 請印出: 1. 五次成績; 2. 平均成績; 3. 五次新成績; 4. 新分數的平均。 以為就這樣結束了嗎? List 還有切片 (Slice) 的功能哦大大! Python 的 slice 功能讓我們能拿出 List 櫃子的一部份。 list[start: end]#拿到 list 的start ,start+1, start+2, ..., end-2, end-1 針對slice語法,讓我們深入介紹一些細節部分:
● 小練習 來辦場Party吧! 輸入十個整數、存入一個名為people清單中 (表示我們的宴客人數);之後會有五次詢問,每次會輸入清單開始和結束的位置,再輸出從開始到結束位置的總和。
|
|