笔记47 笨办法学python练习49创建句子之二
把那个parser_tests.py做出来了,但好像还是有些问题,继续来面对这些问题。重新调整一下parser_tests,找教材方式测试运行,依然通不过。
这是在projects目录下尝试语法分析器后的结果,第二步就被拦住了。
from ex48.parser import *
x = parse_sentence([(‘verb’ ‘run’), (‘direction’, ‘north’)])
Traceback (most recent call last):
File “”, line 1, in
File “C:\Users\lenovo\1pthw\projects\ex48\parser.py”, line 64, in parse_sentence
subj = parse_subject(word_list)
File “C:\Users\lenovo\1pthw\projects\ex48\parser.py”, line 61, in parse_subject
raise ParserError(“Expected a verb next.”)
NameError: name ‘ParserError’ is not defined
标记为nameError
不过,这个结果给人的感觉倒不是那个测试代码有问题,而是被测试的parse.py有问题,看提示,指称第64行和第61行nameError没有定义。但这个代码是完全照录教材的,打开检查好像没有问题。我再到python执行看看,若没有问题,大概就只能在测试代码中找问题了。第一个测试代码已经花了足够多的时间,准备再弄另一个测试代码,看看它的情况。这个代码能够在语法分析器上动起来,那就算是有进步了。自然,还是老套路,不能老停在一个练习上面,把所有问题都解决再往前走,这另一个代码完成测试之后,就该进到练习50了。这样思考之后,突然想到用nosetests来对parse做个测试,这样想又这样做之后,结果是个奇怪的现象,好像把projects后面的代码都测试一番似的,出现了长长一串。```
在这里插入代码片PS C:\Users\lenovo\1pthw\projects\ex48> nosetests
EEEEEE
ERROR: Failure: ModuleNotFoundError (No module named ‘ex48’)
Traceback (most recent call last):
File “c:\users\lenovo\appdata\local\programs\pyt