Надстрочный индекс в выводе консоли Python

Есть ли способ распечатать надстрочные индексы в python. Печать 0 или 2 в качестве надстрочного индекса не является проблемой, но кроме этих цифр выдает обычный цифр.

Например, если я это сделаю:

>>> print("⁰¹²³⁴⁵⁶⁷⁸⁹")

я получил

°1²345678?

Что ж, я, кажется, нигде в сети не нашел удовлетворительного ответа. Итак, пожалуйста, помогите найти способ обойти это ...

Кстати, я использую python 3.5 в Windows 10 [32-бит], Если это имеет значение :-)

Обновлено:

  • Может ли это быть обнаружено через Python, если оболочка поддерживает кодировку UTF-8
  • Кроме того, есть ли способ гарантировать, что мы получим одинаковый результат независимо от того, в какой консоли мы запускаем?

это работает для меня по желанию в py3 и py2 на 64-разрядной версии Linux, кстати

derricw 27.04.2018 19:12

Связанный / возможный обман: Преобразование числовых строк в надстрочные

pault 27.04.2018 19:15

Вы используете командную строку? Кажется, это командная строка. Прекрасно работает в режиме ожидания.

palivek 27.04.2018 19:16

Я использую PowerShell, кстати

Melvin Abraham 27.04.2018 19:17

Кажется, это ограничение PowerShell и CMD. Возможно, этот нить пригодится.

palivek 27.04.2018 19:26

@ palivek Спасибо огромное, у меня chcp 65001 сразу заработал! Сначала сразу набрал chcp 65001 в моей оболочке, а затем запустил мой скрипт python и это сработало

Melvin Abraham 27.04.2018 19:33

Не используйте chcp.com 65001. Вы не сможете вводить в консоль символы, отличные от ASCII. Это все еще не работает в Windows 10. Обновите до Python 3.6, который имеет надлежащую поддержку консольного ввода-вывода широких символов. Если вы не можете выполнить обновление, установите и включите пакет win_unicode_console.

Eryk Sun 28.04.2018 11:48

Кроме того, в Windows 7 установка выходной кодовой страницы на 65001 вызывает запись мусорного следа после каждой записи, содержащей символы, отличные от ASCII. Это связано с тем, что WinAPI WriteConsoleA и WriteFile неправильно возвращают количество записанных в консоль элементов UTF-16 вместо количества записанных байтов UTF-8. Эти два числа одинаковы только для ASCII. Это заставляет буферизованных писателей повторить попытку записи байтов, которые, по-видимому, не были записаны успешно. Это может циклически повторяться несколько раз, записывая бессмысленный мусор, пока писатель не решит, что все байты были успешно записаны.

Eryk Sun 28.04.2018 12:03
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
8
167
1

Ответы 1

Думаю, это проблема PowerShell.

Если я попытаюсь напечатать надстрочный индекс 5 с помощью соответствующего кода, это сработает, только если я изменю шрифт по умолчанию (Lucida Console) на другой, например, Consolas.

>>> print(u'\u2075')
⁵

Если я не ошибаюсь, python 3.x уже считает строки Unicode. Во всяком случае, я попробовал, но результат тот же ...

Melvin Abraham 27.04.2018 19:19

Вы используете Windows cmd или PowerShell ??

Melvin Abraham 27.04.2018 19:20

Я видел ваше обновление сразу после моего первого ответа. Он работает с cmd, но не с PowerShell. Обновляю свой anwser.

Romain 27.04.2018 19:48

Ага! Это зависит от шрифта.

Melvin Abraham 27.04.2018 19:56

@MelvinAbraham И теперь все в порядке?

Romain 28.04.2018 03:46

Выдает мне следующую ошибку: UnicodeEncodeError: 'charmap' codec can't encode character '\u2075' in position 0: character maps to <undefined>

Melvin Abraham 29.04.2018 19:19

Другие вопросы по теме