笨辦法學Python習題48

小然⁽⁽◝( ˙ ꒳ ˙ )◜⁾⁾發表於2020-10-09

笨辦法學Python習題48

最近在看《笨辦法學Python》,一口氣看到48章了,看了一些網上的例子都沒有通過前一章的自動化測試,自己改了一版,僅供參考

direction = ('north', 'south', 'east', 'west', 'up', 'down', 'up', 'left', 'right', 'back')
verb = ('go', 'stop', 'kill', 'eat')
stop = ('the', 'in', 'of', 'from', 'at', 'it')
noun = ('door', 'bear', 'princess', 'cabinet')

class lexicon(object):
  def scan(self):
    i = 0
    output = []    
    splited_words = self.split()
    for i in range(0,len(splited_words)):
        if splited_words[i] in direction:
            output.append(('direction',splited_words[i]))
        elif splited_words[i] in verb:
            output.append(('verb',splited_words[i]))
        elif splited_words[i] in stop:
            output.append(('stop',splited_words[i]))
        elif splited_words[i] in noun:
            output.append(('noun',splited_words[i]))
        else:
            try:
                int(splited_words[i])
                output.append(('number',int(splited_words[i])))
            except:
                output.append(('error',splited_words[i]))
        i += 1
    return(output)

在自動化測試介面,6輪測試全部通過

幾項注意點:

  1. 在lexicon_test匯入模組的時候出錯,因為我的程式碼名字和資料夾的名字都改成了ex48,程式找不到模組。改寫如下程式碼就不報錯了。
from ex48.ex48 import lexicon
  1. 在測試程式中可以看到,要求輸出的是列表,裡面的元素是元組,所以一定要注意這個格式。
output.append(('direction',splited_words[i]))
  1. 這裡是雙括號,如果少了一對會報錯。外層括號表示append的內容,內側括號表示列表裡新增的是一個元組。

  2. 注意數字的判定

  3. 注意對齊和空格縮排

相關文章