Отображение степени
Подскажите пожалуйста как отобразить значения переменной не как решенное выражение а как число в степени 2², 2³, и так далее..... А то у меня питон возводит в степень)
dlina=int(input("Какова длина списка: "))
nums=[2**k for k in range(dlina)]
print(nums)
Какова длина списка: 10
[1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
Нужно чтобы список был [2², 2³, ...] такого формата.
Знаю это учебное задание и я его решил, но как записывать степени чтобы они отображались а не возводились, в моем учебнике не написано.
Спасибо за понимание.
Ответы (1 шт):
Скорее всего, Вам всё-таки не нужно выводить степени в формате 2ⁿ. Но ради спортивного интереса приведу свой вариант.
Современные версии Python используют для кодирования символов Unicode, соответственно Вы можете использовать возможности Unicode для представления надстрочных символов.
Часть таблицы кодирования для надстрочных цифр выглядит следующим образом:
Зная код, Вы можете сформировать нужный символ с помощью функции chr:
chr(0x00B9) # ¹
Также можно использовать их имена:
f'\N{SUPERSCRIPT ONE}' # ¹
Но легче всего сохранить их в список и получать по индексу:
['⁰', '¹', '²', '³', '⁴', '⁵', '⁶', '⁷', '⁸', '⁹']
P.S.: Если Вы попробуете сформировать список этим способом, то получите вывод вида ['2²', '2³', ...]. Он отличается от желаемого Вами, так как репрезентация строк включает в себя одинарные кавычки. Для того чтобы изменить репрезентацию, Вы можете создать собственный класс списка. Но реализация этого поведения выходит за рамки моего ответа.
