Подтвердить что ты не робот

Как получить символ ° в строке в python?

Как я могу получить символ ° (градус) в строку?

4b9b3361

Ответ 1

Поместите эту строку вверху вашего источника

# -*- coding: utf-8 -*-

Если ваш редактор использует другую кодировку, замените utf-8

Затем вы можете включать символы utf-8 непосредственно в исходный код

Ответ 2

Это самая дружественная кодеру версия, указывающая символ юникода:

degree_sign= u'\N{DEGREE SIGN}'

Примечание: в конструкции \N должен быть капитал N, чтобы избежать путаницы с символом новой строки \n. Имя символа внутри фигурных фигурных скобок может быть любым.

Легче запомнить имя символа, чем его индекс юникода. Это также более удобочитаемое, удобное для отладки. Замена символа происходит во время компиляции: файл .py[co] будет содержать константу для u'°':

>>> import dis
>>> c= compile('u"\N{DEGREE SIGN}"', '', 'eval')
>>> dis.dis(c)
  1           0 LOAD_CONST               0 (u'\xb0')
              3 RETURN_VALUE
>>> c.co_consts
(u'\xb0',)
>>> c= compile('u"\N{DEGREE SIGN}-\N{EMPTY SET}"', '', 'eval')
>>> c.co_consts
(u'\xb0-\u2205',)
>>> print c.co_consts[0]
°-∅

Ответ 3

>>> u"\u00b0"
u'\xb0'
>>> print _
°

Кстати, все, что я делал, было поиском "степени юникода" в Google. Это приводит к двум результатам: "Знак градуса U + 00B0" и "Степень Цельсия U + 2103", которые фактически различны:

>>> u"\u2103"
u'\u2103'
>>> print _
℃

Ответ 4

В приведенных выше ответах предполагается, что кодирование UTF8 можно безопасно использовать - это специально предназначено для Windows.

Стандартная консоль Windows использует кодировку CP850 и не utf-8, поэтому, если вы попытаетесь использовать исходный файл, закодированный в utf8, вы получите эти 2 (неправильные) символы ┬░ вместо степень °.

Демонстрация (с использованием python 2.7 в консоли Windows):

deg = u'\xb0`  # utf code for degree
print deg.encode('utf8')

эффективно выводит ┬░.

Исправить: просто заставьте правильное кодирование (или лучше использовать юникод):

local_encoding = 'cp850'    # adapt for other encodings
deg = u'\xb0'.encode(local_encoding)
print deg

или если вы используете исходный файл, который явно определяет кодировку:

# -*- coding: utf-8 -*-
local_encoding = 'cp850'  # adapt for other encodings
print " The current temperature in the country/city you've entered is " + temp_in_county_or_city + "°C.".decode('utf8').encode(local_encoding)

Ответ 5

просто используйте \xb0 (in a string); python автоматически преобразует его