处理列表中项目的顺序

时间:2018-08-21 18:43:30

标签: python-3.x

我不是一个经验丰富的程序员,所以请多多包涵。我已经尝试解决这个问题了好几个小时了。我真的很想解决我的问题。

创建一个程序,该程序将:

  • 如果列表仅由整数组成,则颠倒列表的顺序
  • 如果列表包含单词,则将列表项转换为大写
  • 如果列表成员不满足以下任一条件,则将返回相同的列表 这两个条件
  • 包括该程序的测试。

这是我的测试代码:

import unittest
import switchreverse
class Reverser(unittest.TestCase):
    def test_Reverse(self):
        word_lists = [1,2,3,4,5]
        for e in word_lists:
            if type(0):
                assert word_lists.reverse()
            if type(''):
                assert word_lists.upper()
            else:
                return word_lists
if __name__ == '__main__':
    unittest.main()

这是正在测试的代码:

def Switchreverser():
    word_lists = [1,2,3,4,5]
    for e in word_lists:
        if type(0):
            word_lists.reverse()
        elif type(''):
            word_lists.upper()
        else:
            return word_lists

这是我收到的错误:

 F
======================================================================
FAIL: test_Reverse (__main__.Reverser)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "test_switchreverse.py", line 8, in test_Reverse
    assert word_lists.reverse()
AssertionError

----------------------------------------------------------------------
Ran 1 test in 0.000s

FAILED (failures=1)

1 个答案:

答案 0 :(得分:0)

list.reverse就地修改list并返回None,因此assert list.reverse()assert None相同,显然会引发AssertionError。 / p>

不相关,但{strong>不会会if type(0)if type('')检查列表元素的类型。相反,您应该做if all(isinstance(element, int) for element in list)