Создал рекурсивную программу для преобразования позиции столбца в столбец Excel (1 = A, 27 = AA), получение @ на моем выходе

Я сделал эту программу для ознакомления с рекурсией и для всех ее целей и задач.

def alpha_covert(to_print): if to_print is 0: return 'Z' else: return chr(int(to_print) + 64) def order(to_print): if to_print <= 26: return alpha_covert(to_print) else: return (str(order(to_print % 26))) + (str(order(to_print / 26))) 

Некоторые примеры:

 >>print(order(1)) >>print(order(100)) >>print(order(443)) >>print(order(9001)) >>print(order(9999999999999999)) A VC AQ EHM [email protected] 

Для последнего выхода почему существует @ ? Я предположил, что нет проблемы, поскольку int не объявлен, пока я не использую alpha_covert который к тому времени должен быть less than or equal to 26 .

Это какая-то ошибка округления округления?


Некоторые дополнительные образцы, пока я пытаюсь решить эту проблему самостоятельно. Я не знаю, что это значит:

 >>print(order(9999999999999997)) >>print(order(9999999999999998)) >>print(order(9999999999999999)) [email protected] [email protected] [email protected] 

Проблема здесь в том, что:

 if to_print is 0: 

происходит до того, как вы преобразуете to_print в целое число . Кроме того, вы действительно должны использовать равенство ( == ), а не идентификатор ( is ); Небольшие целые числа интерполируются в CPython, но это деталь реализации, на которую вы не должны положиться.

Самое простое исправление:

 if to_print == '0': # compare to string, and by equality 

но лучшим способом является преобразование числа в первую очередь и использование того факта, что нулевые численные значения вычисляют false-y :

 def alpha_convert(to_print): # note typo in function name """A docstring would be nice, too!""" to_print = int(to_print) return chr(to_print + 64) if to_print else 'Z' 
  • String to Bytes, пытаясь открыть файл csv со списком. ПИТОН
  • Python 3.5 | Разделить список и преобразовать в csv
  • Нужно брать данные из текстового файла в электронную таблицу для анализа
  • Удалить весь столбец с определенным контентом в python с помощью pandas
  • Красивый суп: информация о погоде: таблица -> Файл Excel
  • Удаление символов из строки до определенного символа
  • ws значение, начинающееся с неправильной строки строки
  • Как получить дату во имя файла excel, созданного с помощью python?
  • Openpyxl с несколькими листами генерирует поврежденный файл Excel
  • Возможно ли перезаписать существующие данные в файле .xlsx с помощью openpyxl?
  • которая является хорошей библиотекой для чтения и записи файлов MS excel с Python 3
  • Давайте будем гением компьютера.