笨办法学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轮测试全部通过 几项注意点:
在lexicon_test导入模块的时候出错,因为我的代码名字和文件夹的名字都改成了ex48,程序找不到模块。改写如下代码就不报错了。 from ex48.ex48 import lexicon 在测试程序中可以看到,要求输出的是列表,里面的元素是元组,所以一定要注意这个格式。 output.append(('direction',splited_words[i]))这里是双括号,如果少了一对会报错。外层括号表示append的内容,内侧括号表示列表里新增的是一个元组。
注意数字的判定
注意对齐和空格缩进
