小習題
你知道什麼是互動式解譯器嗎? 就是可以輸入Python指令,然後輸出結果。
以下題目都請用此工具作練習
建議 : 先close book作測試,也可參考Python 快速入門
把玩字串
- 請先新增一個測試物件,放入一首詩當物件的內容,它會長這樣:
poem='''All that doth flow we cannot liquid name
Or else would fire and water be the same;
But that is liquid which is moist and wet
Fire that property can never get.
Then 'tis not cold that doth the fire put out
But 'tis the wet that makes it die, no doubt.'''
請取得第13個字元
請取得前13個字元
這首詩有幾個字元
它的開頭是不是'All'(不知道沒關係,老師沒教沒關係,可以請問GOOGLE大神。關鍵字不會下沒關係,多練習就好,我是用這樣的關鍵字找到的"Python 字串 開頭)
它的結尾是不是folks!(同上)
我們來找出'The'這個字第一次出現的位移值(位移值不知道?同上)
以及最後出現的位移值
'the'這三個連續字母出現的次數
詩的字元是否只有字母與數字
再來小玩幾題數字題
每小時有幾秒?請用每分鐘的秒數乘以每小時的分鐘數
將結果指派給一個變數a(變數名稱請練習,老師上課百般強調的命名,因為取不好會被Kid唸,敝人身受其苦)
每天有幾秒,請使用上題指派的變數
將結果指派給另一個變數b(同2.2)
將變數a除以變數b,使用浮點數/除法
將變數a除以變數b,使用整數//除法
浮點數/跟整數//的浮點值一樣嗎?(怎麼檢查? 看講義,講義沒有請問GOOGLE大神)
輕鬆玩 串列(List)、元組(Tuple)、字典(Dictionary)、集合(Set)
串列(List)
- 建立一個birthYearList(List),從你出生那年開始,一直列到你第五個生日那一年。
- birthYearList哪一年是你的第三個生日
- 哪一年你最老
- 建立一個nameList,請使用以下字串當它的元素
'Joseph','Kid','Chin','a','Kathy','Andy','a','Jamie','Nancy','Christine','a','TJ','hau'
- 請將元素'hau'第一個字改為大寫
- 按造每個元素的第一個字母重新排序(A->Z)
- 建立aTeamNameList,請使用以下字串當它的元素並且把它加入nameList
'Eva','Max','Morco','Art','Michael'
- 使用join() 把nameList列印出來,它要長這樣
Andy & Chin ...
- nameList有多少元素
- a元素出現幾次
- 找出'Grady'是否在nameList中,那'Chin'呢? (請用in)
- 請試試,將nameList指派給另一個物件(語法會長這樣 nameList = checkList),再試試用copy的方法去指派給新的串列copyList *現在把nameList的第一個元素改成"123",再將這三個List列印出來比較,有發現有什麼不一樣嗎?
元組(Tuple)
- 新建一個Tuple,請使用以下字串當它的元素
'Grady','Harry','BY','BY'
- 請試試將'Joseph'加入Tuple中,可以成功加入嗎? 不行,為什麼不行?(因為他是地下PM...誤)
- 試著將一個List轉成Tuple
字典(Dictionary)
- 製作一個名為e2f的英法字典,並將它印出,以下是最初的單字:dog是chien,cat是chat,walrus是morse
- 使用e2f列出walrus的法文單字
- 請添加owl是hiboul的單字
- 冏,打錯字了,請把owl的法文單字修正成hibou
- 請再製作一個e2fPlse字典,以下是最初的單字:dog是1,cat是2,Lion是Lion,tiger是tigre
- 請合併e2f與e2fPlus並且將結果存在e2fPlse,如果要合併的字典裡有重複的鍵時,會發生什麼事?
- 請刪除e2fPlse的dog鍵
程式結構
條件運算式
- 將7這個值指派給變數guessMe。接下來,編寫條件測試式(if、else與elif),當guessMe 小於7時印出 'too low',大於7時印出'too high',等於7時印出'just right'。
遞迴與跌代
- 將1這個值指派給變數start。寫一個while迴圈來比較start與guessMe。如果start小於guessMe印出 'too low',等於印出'found it',大於印出'opps'並且離開迴圈。在迴圈的結尾遞增start
- 使用for迴圈來印出串列[3,2,1,0]
函式
*定義一個名為good的函式,讓它回傳串列
['Joseph','Andy','Kid','Jamie']
大習題
我想你練功練到這,內功必定大增,趁過年,我們來飛天遁地吧。 將這些學習過的小拼塊拼在一起,試著運用它們。
- 新年到了,188想辦個新年Promotion活動
- 活動期間:2017年1月16日中午12点至2017年2月30日上午11点59分
- 參加資格:2016年會員下注金額達1000可獲得一次幸運轉盤機會,下注金額達2000可獲得2次,以此推類。
- 會員2016下注每人金額資料如下:
Kid:5650 Chin:1050 Kathy:3000 Jamie:36000 Andy:6000 Joseph:87878 Oken:500 Eason:0
- 獎品名單(五個獎品機率是一樣的)
金鸡:iphone7 福:銘謝惠顧,今年請努力再多下點注 禄:銘謝惠顧,今年請努力再多下點注 财:銘謝惠顧,今年請努力再多下點注 禧:銘謝惠顧,今年請努力再多下點注
使用互動式解譯器當前端,參加活動。(這就是喬瑟夫老師的作業中有寫過的,猜數字)
讓member輸入他的名字
- 秀出member獲得玩幾次幸運轉盤的機會,並請會員輸入一次要使用幾個機會。如果會員有2次機會,他想一次輸出中獎結果就打2,如果想慢慢來就打1,系統會輸出一次中獎結果。
- 輸出中獎結果,並且檢查是否還有資格繼續玩,如果還有請會員再次輸入次數,如果沒有請告訴他"謝謝衣食父母2016年的付出,2017年請再多加油好嗎~"
- 如果在過年期間1/27~2/1參加活動,加碼送一次機會。但如果原本就沒機會的依舊沒機會。
- 獎品機率一樣,五個獎品隨機取一。
- 金雞獎限量10台iphone。
- 你的程式碼中必須使用Class跟函式的概念
程式撇步
請先試著想你在寫Test Case,你會寫入哪些測試項目,然後試著把這些測試項目寫入判斷裡。
舉例: 你不會希望你寫出一個大BUG,讓沒資格參加活動的人還能玩轉盤, 你就必須在程式裡加一個判斷檢查這個人的資格是否符合。
對於程式初學者,我相當建議你,請在你的程式裡加上任何可以幫助你了解你程式碼的註解。
#舉例: #檢查member是否有參加資格 if (playTimes <= 0) print('抱歉你沒有參加資格唷!')
錦囊妙技
- random內建函式,你會需要的,請Google,別忘了關鍵字要打python,如果你不希望搜尋結果的程式語言可能是C或C++。