Неправильные тесты, но не знаете, что не так с моим кодом?

#python

Вопрос:

Код, который я создаю, в основном состоит в том, что вам дается номер и база. Вы делите число на основание и получаете частное и остаток. Вы продолжаете делать это до тех пор, пока значение коэффициента не станет равным нулю, а затем вы складываете остатки в виде строки и возвращаете ее.

Оставшиеся значения 10 начинают превращаться в буквы.

Я отправил этот код на GitHub для оценки моим профессором, но я получаю ошибки из-за неправильных тестов? Я почти уверен, что тесты работают, но я не уверен, почему я получаю ноль по ним.

 def convert(num: int, base: int) -> str:

    if num < base:
        return str(num)   ""
    remainder = (num % base)
    if remainder <= 9:
        return str(convert(num // base, base))   str(remainder)   ""
    elif remainder == 10:
        return str(convert(num // base, base))   "A"   ""
    elif remainder == 11:
        return str(convert(num // base, base))   "B"   ""
    elif remainder == 12:
        return str(convert(num // base, base))   "C"   ""
    elif remainder == 13:
        return str(convert(num // base, base))   "D"   ""
    elif remainder == 14:
        return str(convert(num // base, base))   "E"   ""
    elif remainder == 15:
        return str(convert(num // base, base))   "F"   ""
    elif remainder == 16:
        return str(convert(num // base, base))   "G"   ""
    elif remainder == 17:
        return str(convert(num // base, base))   "H"   ""
    elif remainder == 18:
        return str(convert(num // base, base))   "I"   ""
 
 import unittest

from base_convert import convert

class Tests(unittest.TestCase):
    def test_convert_base02_1(self):
        self.assertEqual(convert(107, 2), '1101011')

    def test_convert_base10_1(self):
        self.assertEqual(convert(107, 10), '107')

    def test_convert_base10_2(self):
        self.assertEqual(convert(500, 10), '500')

    def test_convert_base04_1(self):
        self.assertEqual(convert(30, 4), '132')

    def test_convert_base15_a(self):
        self.assertEqual(convert(164, 14), '11A')

    def test_convert_base16_b(self):
        self.assertEqual(convert(107, 16), '6B')

    def test_covert_base16_c(self):
        self.assertEqual(convert(316, 16), '13C')

    def test_convert_base17_d(self):
        self.assertEqual(convert(513, 17), '1D3')

    def test_convert_base15_e(self):
        self.assertEqual(convert(164, 15), '10E')

    def test_convert_base16_f(self):
        self.assertEqual(convert(175, 16), '10F')

    def test_convert_base19_g(self):
        self.assertEqual(convert(187, 19), '9G')

    def test_convert_base21_h(self):
        self.assertEqual(convert(164, 21), '7H')

    def test_convert_base19_i(self):
        self.assertEqual(convert(208, 19), '10I')


if __name__ == '__main__':
    unittest.main()
 

Комментарии:

1. Ваша проблема возникает, когда num < base , но num больше, чем 9

2. Не совсем ваш вопрос, но strings.ascii_uppercase содержит «ABCDEFG…Z». Вы могли бы использовать это вместо ваших семи различных случаев добавления буквы. Вы также можете также удалить "" . Это ничего не дает.