我想写一个函数,它接受一个数字列表(正整数)并返回一个排序的数字列表,这样奇数第一,偶数最后
例如:
我的分类([1,2,3,4,5,6,7,8,9,10])=>;[1,3,5,7,9,2,4,6,8,10]
我的分类([1,2])=>;[1,2]
我的分类([2,1])=>;[1,2]
我的分类([3,3,4])=>;[3,3,4]
我的分类([90,45,66])=>;[45,66,90]''
这是我的密码def my_sort(numbers):
a = [n for n in numbers if n % 2 != 0]
b = [n for n in numbers if n % 2 == 0]
new_num = b + a
for m in numbers:
if a and b:
return new_num
else:
return "Invalid sorted output"
所有的测试都失败了。我是编程和python的新手。如果有人能帮我,我将不胜感激。
这里是单元测试import unittest
class MySortTestCases(unittest.TestCase):
def setUp(self):
self.result1 = my_sort([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
self.result2 = my_sort([1, 2])
self.result3 = my_sort([2, 1])
self.result4 = my_sort([3, 3, 4])
self.result5 = my_sort([90, 45, 66])
def test_output_1(self):
self.assertEqual(self.result1, [1, 3, 5, 7, 9, 2, 4, 6, 8, 10],
msg='Invalid sorted output')
def test_output_2(self):
self.assertEqual(self.result2, [1, 2], msg='Invalid sorted
output')
def test_output_3(self):
self.assertEqual(self.result3, [1, 2], msg='Invalid sorted
output')
def test_output_4(self):
self.assertEqual(self.result4, [3, 3, 4], msg='Invalid sorted
output')
def test_output_5(self):
self.assertEqual(self.result5, [45, 66, 90], msg='Invalid
sorted output')