Почему этот старый пример Python с использованием символа «\ u2155» не работает в приглашении Python 3.5?

Я пытался воспроизвести этот пример https://mail.python.org/pipermail/python-list/2012-May/624363.html

Я совершенствовал свои навыки кодирования на Python и изучал различные строковые методы, и мне показались интересными методы isdigit, isdecimal и isnumeric. В документации по python не так много примеров, поэтому я делаю свою собственную, которую могу просмотреть, когда захочу. Самый первый пример, показанный по ссылке выше, не работает в моей консоли Python 3.5. Вывод выглядит следующим образом:

>>> c = '\u2155'
>>> print(c)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Program Files (x86)\Python35-32\lib\encodings\cp437.py", line 19, in
encode
    return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u2155' in position
0: character maps to <undefined>

Следующий тест с другими дробями у меня работал нормально.

>>> value = '\u00BC'
>>> print(value)
¼
>>> value.isdecimal()
False
>>> value.isdigit()
False

Что мне не хватает?


person shawn1874    schedule 13.01.2017    source источник
comment
Ваш консольный кодек не может обрабатывать весь Unicode в целом и этот символ в частности. Обновитесь до Python 3.6, где Python полностью обходит выбранный кодек и передает Unicode прямо в Windows.   -  person Martijn Pieters    schedule 13.01.2017
comment
Хорошо. Почему бы вам не опубликовать это как ответ? Этот другой поток на самом деле представляет собой такой же вопрос, но у него нет принятого ответа, так что этот поток не приносит мне никакой пользы.   -  person shawn1874    schedule 13.01.2017
comment
принято просто означает, что ОП отдал предпочтение одному из ответов. Отсутствие принятой оценки ничего не значит, на самом деле, всегда просматривайте все ответы (или хотя бы первые 3), чтобы увидеть, что лучше всего подходит к вашей ситуации. Python 3.6 еще не вышел, когда эти ответы были написаны, я оставил несколько комментариев для авторов, чтобы дать им возможность обновить, прежде чем я налетю и опубликую новый ответ.   -  person Martijn Pieters    schedule 13.01.2017
comment
Ваша консоль использует cp437 (кодовая страница 437), которая не может отображать этот символ — возможно, попробуйте Изменить кодовую страницу консоли Windows по умолчанию на UTF-8   -  person furas    schedule 13.01.2017