笨办法学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的内容,内侧括号表示列表里新增的是一个元组。
-
注意数字的判定
-
注意对齐和空格缩进