Python. Как "нарисовать" степень числа, используя функцию print
Как нарисовать степень числа при выводе числа на экран?
Например,
a = 4
print('a = ', 2, '^2')
Как вместо галочки поставить степенной регистр?
Ответы (4 шт):
Автор решения: likel0vsky
→ Ссылка
Есть таблица символов юникода, оттуда можно брать.
Можно скопировать отсюда: https://unicode-table.com/ru/sets/superscript-and-subscript-numbers/
Автор решения: CrazyElf
→ Ссылка
Вот так, но универсального решения нет, это для конкретно степени 2 символ UTF-8:
a = 4
print('a = 2\u00B2')
Вывод:
a = 2²
Ссылка на таблицы кодов для степеней
Ссылка на таблицы кодов для остальных математических символов
Автор решения: Danis
→ Ссылка
dict_ = {
0: "\u2070",
1: "\u00B9",
2: "\u00B2",
3: "\u00B3",
4: "\u2074",
5: "\u2075",
6: "\u2076",
7: "\u2077",
8: "\u2078",
9: "\u2079"
}
a = 4
print("a = ", str(a) + dict_[2])
Автор решения: Serg Bocharov
→ Ссылка
Немного дополню ответ Danis'a, правда только для целочисленных значений и немного уродски выглядит в консоли )))
indexes = {"0": "\u2070",
"1": "\u00B9",
"2": "\u00B2",
"3": "\u00B3",
"4": "\u2074",
"5": "\u2075",
"6": "\u2076",
"7": "\u2077",
"8": "\u2078",
"9": "\u2079",
"-": "\u207B"
}
def degree(a: int):
degrees = ""
temp = str(a)
for char in temp:
degrees += indexes[char] or ""
return "a = " + temp + degrees
if __name__ == "__main__":
print(degree(1024))
print(degree(-1024))
print(degree(int(input("Введите число: "))))
Вывод:
a = 1024¹⁰²⁴
a = -1024⁻¹⁰²⁴
Введите число: -659897
a = -659897⁻⁶⁵⁹⁸⁹⁷
UPDATE
Ну и немного подправил, чтобы юзабельно было (может кому и пригодится):
def degree(digit: int, deg: int):
degrees = ""
temp = str(deg)
for char in temp:
degrees += indexes[char] or ""
return "a = " + str(digit) + degrees
if __name__ == "__main__":
print(degree(1024, 56))
a, b = map(int, input("Введите число и степень: ").split())
print(degree(a, b))
Вывод:
a = 1024⁵⁶
Введите число и степень: 23 5698
a = 23⁵⁶⁹⁸