Python单测试用例运行时输出两个False的问题修复
问题原因
- 重复输出的核心诱因是循环写法错误:Python中直接用
for 变量 in 字典的写法,默认遍历的是字典的顶层键,你的test0字典一共有input、output两个顶层键,所以这个循环会执行2次,对应打印2次结果。 - 当前输出内容为
False是因为count_rotations函数里只有pass占位语句,函数默认返回None,None == 3的判断结果本身就是False,这和重复输出问题无关。
修复方法
如果只需要运行当前这一个测试用例,直接删掉错误的循环,单次执行判断打印即可,修正后代码:
def count_rotations(nums): # 后续补全旋转计数的业务逻辑即可 pass test0 = { 'input': { 'nums': [4,5,1,2,3] }, 'output': 3 } print(count_rotations(test0['input']['nums']) == test0['output'])
如果后续需要批量运行多个测试用例,需要先把所有测试用例存到列表里,再遍历列表执行判断,避免直接遍历单个测试字典的键,参考写法:
def count_rotations(nums): # 后续补全旋转计数的业务逻辑即可 pass # 所有测试用例统一放在列表中,后续新增用例直接往列表里追加即可 test_cases = [ { 'input': { 'nums': [4,5,1,2,3] }, 'output': 3 } ] for test in test_cases: print(count_rotations(test['input']['nums']) == test['output'])
内容的提问来源于stack exchange,提问作者Aksh
相关产品推荐
相关产品推荐

