給 Python 初學者的 11 道練習題,讓你由淺入深掌握 coding 技術!

學 Python,你必須先學習基礎知識,再透過大量專案來練習實戰技術。很多人學程式會落入「上課」的陷阱,也就是上大量的課程,卻沒有實際練習,因而無法應用程式解決實際的問題。因此,最好的學習方法,是學習基礎知識後,透過簡易的題目練習,再上更多的課,持續深化 coding 技術。

軟體開發者 Endy Austin 分享 11 道 Python 初學者可練習的 題目

奇偶數辨別(Odd or even)

寫一個程式,當使用者輸入一個介於一定範圍(例如 1 到 1000)的數字,它能夠辨別奇偶,並輸出檢驗結果給使用者。

範例:

畫面:輸入一個數字
輸入:25
輸出:奇數

填字遊戲(Mad libs game)

使用者輸入任何字,它可以是名詞、形容詞、動詞、代名詞等。程式得到文字後,可自行排列,組成成一個故事。

YouTube 教學 傳送門
GitHub 程式碼 傳送門

計算字數(Word count)

使用者輸入一段文字,程式統計字數。

範例:

畫面:你心裡在想什麼?
輸入:我要成為寫程式的專家
輸出:你用了 10 個文字述說內心的想法

更進階的話,可以丟文件給程式,讓它算出裡面的字數。

GitHub 程式碼 傳送門

個資判斷(Biography info)

請使用者輸入個資,程式檢查資料是否有效,並將輸入的資訊統整,完整呈現給使用者。

例如,程式可以問使用者的名字。如果用戶輸入「*」,程式就要提醒他們輸入錯誤,並要求他們輸入有效的名字。最後,程式會輸出類似以下的資訊:

姓名:John Doe
生日:1954/1/1
地址:紐約第五大道 24 號
目標:成為史上最強的工程師

字母縮寫(What’s my acronym?)

使用者輸入一段話,程式抓出單字的第一個字母,並輸出縮寫。

例如:

輸入:As Soon As Possible
輸出:ASAP

剪刀石頭布(Rock, Paper, Scissors)

顧名思義,就是寫一個能跟你猜拳的程式啦!

YouTube 教學 傳送門

猜數字(Guess the number)

請使用者猜一個介於範圍(例如 1 到 50)之間的數字,若使用者猜錯,就詢問他們想繼續玩還是退出;若使用者猜對,就顯示祝賀訊息,並統計使用者的嘗試次數。如果使用者輸入的數字超出設定範圍,就顯示錯誤提示。

YouTube 教學 傳送門

回文判斷(Is a palindrome)

請使用者輸入單字,判斷它是否為回文,也就是該單字前後對稱,例如 madam,從前讀到後或是從後讀到前的順序都是 madam。

例如:

madam 是回文
malayalam 也是
但 geeks 不是

GitHub 程式碼 傳送門

計算小費(Calculate the tip)

計算帳單的小費。可以請使用者輸入帳單金額,然後顯示一定比例的小費。別忘了要四捨五入。

例如:

畫面:今日帳單多少?
輸入:100
輸出:在費率 10% 的狀況下,小費為 10,總金額 110。

更進階的話,可以請使用者輸入分配人數,然後算出小費總額與分擔平均。再進一步,還可以不平均分配,例如 1 個人承擔 70% 的帳,30% 則由剩下的人承擔,算出每個人必須承擔的金額。

Email 域名判斷器(Email slicer)

請用戶輸入 Email 地址,然後判斷它是自定義域名還是熱門域名。

例如:

輸入:[email protected]
輸出:這是註冊在 Google 之下的 Email 地址
輸入:[email protected]
輸出:這是在 MyFantasy 之下自定義域

YouTube 教學 傳送門
GitHub 程式碼 傳送門

歌詞生成器(Lyrics generator)

程式顯示一些首歌(大概 10 首),要求使用者選擇 1 首。選擇後,畫面顯示該歌曲的歌詞。

例如:

請選擇 1 首歌:
1. Baby by Bieber
2. Hotline Bling by Drake
3. Flawless by Beyonce
4. Fall by Eminem…

你選擇 Flawless by Beyonce,以下是它的歌詞:

I’m out that H, town coming coming down
I’m coming down, drippin’ candy on the ground
H, Town, Town, I’m coming down, coming down
Drippin’ candy on the ground…

更進階的話,可以加入歌手搜尋功能,讓使用者輸入歌手,然後再挑出該歌手的歌曲給使用者選擇。

練習的時候,不要看教學或範例

這些都是簡單的題目,但透過這些題目,可以讓初學者建立變數聲明、資料輸入、迴圈等基礎概念,進而再深入更難的 coding 技術。

Austin 建議,若要透過題目來練習程式,可以遵循以下步驟:
1. 讀懂題目,並試著用自己的話解釋題意。
2. 接著,嘗試自己寫程式,不要看 YouTube 教學或 GitHub 範例。
3. 如果真的不會寫,可以先看 YouTube 教學;如果還是不會,再看 GitHub 範例。也可以用 Google 搜尋其他的資源。
4. 看完之後,理解它,然後嘗試自己寫程式,但不要邊看教學邊寫。

Austin 也提醒,如果覺得自己卡住了,就先休息,因為在休息的時候,潛意識仍然持續運作,但思維已經從專注模式轉變為發散模式。此時,人腦更容易想通。

但最重要的,就是「堅持」。有紀律的練習,由淺入深,終有一天會變成專業的軟體工程師!

參考資料

freeCodeCamp

(本文提供合作夥伴轉載。首圖來源:flickr CC Licensed

延伸閱讀

【Debug 不再心累?】把 Python 程式設計「可視化」,竟出自瑞士理工學院大一新生之手
新年目標想成為 Python 高手,你一定要知道這十大模組!
【紅白大戰勝負終揭曉?】糾纏了近 20 年,Python 這次真的超越 Java 了!


點關鍵字看更多相關文章: