Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 24, 2009 22:28:48

Savyur
От:
Зарегистрирован: 2009-11-24
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Почему в консоли вместо русского текста выдается шестнадцатеричный код

Не думаю, что мой вопрос глупый.
Комментарии, данные выше насчет str и repr, я понимаю.
Дам уточнение моего вопроса.
Почему в этом случае разный вывод для:
print список
и
print список

Ведь в первом случае печатается первый элемент списка, а во втором весь список поэлементно, как в случае его объявления.
Только вот результат разный!
И почему по-вашему для первого случая действует str, а для второго repr?

Возможно, я не корректно привел консольный вывод.
Исправляюсь:

Дано:

>>>a=['АБВ','ГДЕ']
вариант1:
>>>print a[0]
АБВ
Вариант2:
>>>print a
['\x...', '\x... ...']
- какие коды внутри не так важно



Офлайн

#2 Ноя. 24, 2009 22:38:09

leventov
От:
Зарегистрирован: 2009-10-15
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Почему в консоли вместо русского текста выдается шестнадцатеричный код

Savyur, значит, принт для списка работает иначе, нежели вам бы хотелось. Как говориться, так устроен
мир. На самом деле, он работает вполне логично, печатая список как объект.



Офлайн

#3 Ноя. 24, 2009 22:42:08

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Почему в консоли вместо русского текста выдается шестнадцатеричный код

еще раз: __str__ и __repr__ для списка идентичны.
Реализованы как

def __repr__(self):
return '[%s]' % ', '.join(repr(i) for i in self)
__str__ = __repr__
Только сделано это на С и работает чуть быстрее.

Медитировать над приведенным кусочком, пока не наступит просветление.



Офлайн

#4 Ноя. 25, 2009 00:14:08

Savyur
От:
Зарегистрирован: 2009-11-24
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Почему в консоли вместо русского текста выдается шестнадцатеричный код

leventov
Savyur, значит, принт для списка работает иначе, нежели вам бы хотелось. Как говориться, так устроен
мир. На самом деле, он работает вполне логично, печатая список как объект.
Только логично бы было выводить объекты (в данном случае строки) всего списка тем же способом, который используется для вывода отдельно взятого (по его индексу) объекта-строки.



Офлайн

#5 Ноя. 25, 2009 01:15:01

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Почему в консоли вместо русского текста выдается шестнадцатеричный код

Просветление пока не наступило.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version