【发布时间】:2018-09-22 16:27:50
【问题描述】:
我的代码:
directions = ["north", "south", "east", "west"]
def scan(sentence):
global sentence_list
sentence_list = []
sentence.split()
for i in sentence:
if i in directions:
a = ('direction', i)
sentence_list.append(a)
del a
return sentence_list
我正在尝试拆分字符串并返回列表中元组中的单词,但每当我使用返回空列表进行测试时。
这是我的输出:
PS C:\Users\dell 3521\lpythw\ex48> nosetests
F
======================================================================
FAIL: tests.lexicon_tests.test_directions
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\Users\dell 3521\AppData\Local\Programs\Python\Python36-
32\lib\site-packages\nose-1.3.7-py3.6.egg\nose\case.py
", line 198, in runTest
self.test(*self.arg)
File "C:\Users\dell 3521\lpythw\ex48\tests\lexicon_tests.py", line 5, in
test_directions
assert_equal(lexicon.scan("north"), [('direction', 'north')])
AssertionError: Lists differ: [] != [('direction', 'north')]
Second list contains 1 additional elements.
First extra element 0:
('direction', 'north')
- []
+ [('direction', 'north')]
----------------------------------------------------------------------
Ran 1 test in 0.021s
FAILED (failures=1)
提前致谢。
【问题讨论】:
-
请正确缩进你的代码-
-
sentence.split()不会就地修改sentence。 -
你应该尝试使用
for i in sentence.split(): -
原来是在源文件里,但是我发问题后忘记缩进代码了。现在已经纠正了。
-
不要使用全局,
del a不是必需的,i是一个词的坏名字。
标签: python python-3.x function return