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

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

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

Дано:
>>>a=['АБВ','ГДЕ']
вариант1:
>>>print a[0]
АБВ
Вариант2:
>>>print a
['\x...', '\x... ...']
- какие коды внутри не так важно
leventov
Savyur, значит, принт для списка работает иначе, нежели вам бы хотелось. Как говориться, так устроен
мир. На самом деле, он работает вполне логично, печатая список как объект.
Андрей Светлов
еще раз: __str__ и __repr__ для списка идентичны.
Реализованы как
def __repr__(self):
return '[%s]' % ', '.join(repr(i) for i in self)
__str__ = __repr__
Только сделано это на С и работает чуть быстрее.

Медитировать над приведенным кусочком, пока не наступит просветление.
Savyur
leventov
Savyur, значит, принт для списка работает иначе, нежели вам бы хотелось. Как говориться, так устроен
мир. На самом деле, он работает вполне логично, печатая список как объект.
Только логично бы было выводить объекты (в данном случае строки) всего списка тем же способом, который используется для вывода отдельно взятого (по его индексу) объекта-строки.
Ferroman
Просветление пока не наступило.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB