Как преобразовать целое число в строку без использования встроенной функции?

1

Я хочу спросить, как преобразовать целое число в строку без использования встроенной функции.

Это оригинальный вопрос:

Напишите string(ls) функции string(ls) которая возвращает строковое представление списка ls.

Примечание. Не используйте встроенный метод str() для этой задачи. Мы пытаемся подражать его поведению.

s = string(['a','b','c'])   # '['a','b','c']'

s = string([1,2,3])         # '[1, 2, 3]'

s = string([True])          # '[True]'

s = string([])              # '[]'

Ограничения: не просто верните str(ls) ! Не используйте метод str.join, не используйте нарезку.

Вот мой код:

def string(ls):
    if len(ls)==0:
        mess="'[]'"
        return mess
    elif isinstance(ls[0],str):
        i=0
        mess="'["
        while True:
            if i==len(ls)-1:
                elem="'"+ls[i]+"'"
                mess=mess+elem
                break
            else:
                elem="'"+ls[i]+"', "
                mess=mess+elem
            i=i+1
        mess=mess+"]'"
        return mess
    else:
        i=0
        mess="'["
        while True:
            if i==len(ls)-1:
                elem=str(ls[i])+"]'"
                mess=mess+elem
                break
            else:
                elem=str(ls[i])+', '
                mess=mess+elem
            i=i+1
        return mess
  • 3
    А какой у тебя вопрос?
  • 0
    @ThierryLathuille Извините. Я хочу спросить, как преобразовать целое число в строку без использования встроенной функции?
Показать ещё 8 комментариев
Теги:
python-3.x

1 ответ

2
Лучший ответ

Вы можете продолжать делить заданное целое число на 10 и довести остаток до выходной строки. Используйте порядковый номер '0' плюс остаток, чтобы получить порядковый номер остатка, а затем преобразовать его в строку с помощью функции chr:

def int_to_string(i):
    string = ''
    while True:
        i, remainder = divmod(i, 10)
        string = chr(ord('0') + remainder) + string
        if i == 0:
            break
    return string

чтобы:

print(int_to_string(0))
print(int_to_string(5))
print(int_to_string(65))
print(int_to_string(923))

будет выводить:

0
5
65
923
  • 1
    Отлично! Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню