photo: Tima Miroshnichenko/Pexels
前言
我的背景
Hi 我是Sky,利用業餘自學Python的電機工程師。正朝資料科學&資料分析師準備中,目前正累積解題作品,以及學習實務面所必備的硬實力。
這一系列的文章,希望透過同理心,幫助Python程式小白,學完基礎的語法、函式之後,到底該怎麼運用在特定的需求上。因此,我將這篇的11道Python練習題,分享我判讀及解題的過程。
╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳
看完這篇文章將學到:
如何新增、移除列表(List)中的資料,以及打亂列表(List)中的資料
如何引用函式(Module)
如何使用while迴圈
如何使用break跳脫程式執行
如何將列表(List)轉換成字串(String)
╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳
題目
填字遊戲(Mad libs game)
使用者輸入任何字,它可以是名詞、形容詞、動詞、代名詞等。程式得到文字後,可自行排列,組成成一個故事。
判定題目
建立一個空列表,以便新增使用者輸入的字詞。
list = []
以持續執行(Ture)的while迴圈包裝if 判斷式,判斷使用者輸入的資料是否為字詞。若為字詞則持續新增至列表內。
elif data != "x" or data == "X":
list +=[data]
另一種情況,使用者輸入"x"表示完成輸入。這邊也將大寫的"X"列入判斷條件。
if data == "x" or data == "X":
刪除列表中的最後一筆資料,即是"x"或"X"。
del list[-1]
使用random.sample函式,以隨機不重複的方式取出list列表內的資料,儲存至shuffled_lists列表。語法為random.sample(目標列表, 隨機不重複取出的資料數),這邊以len()方法,將list列表的資料總數當成隨機不重複取出的資料數。
from random import sample
shuffled_lists = sample(list, len(list))
使用join()方法將shuffled_lists列表轉為字串(string)形式,儲存至變數str_lists。join()方法前綴" "的空白字元,會做為列表資料轉為字串的連接。
str_lists = " ".join(shuffled_lists)
最後,輸出str_lists結果,並以break跳出while迴圈,結束這支Python程式運行。
print("Your new story is:", str_lists)
break
以上就是本題的判讀&解題過程。
完整程式碼