Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > Использование русского текста в строках


Автор: programmerVbuduchem 8.11.2009, 23:10
 Всем привет! Встречайте новичкаsmile
Причем новичек я полный, т.е. только вчера прочитал основы программирования и определился с первым языком. Выбрал Питон 2.6.4. Учусь по книге А.Н. Чаплыгина "Учимся программировать вместе с
Питоном" (Start with Python). Там есть такая строка: " raw_input("Press any key to exit")
Это заставит интерпретатор дождаться нажатия любой клавиши, прежде чем завершить
программу." Но на деле нужно нажать именно Enter. Пока у меня просто есть вот, что:

print "Hello!"
raw_input("Press any key to exit")

Но если вместо "Hello!" написать, что-то на русском, то окно консоли закрывается едва открывшись, а в таком виде висит пока Enter не клацнешь, кто-нибудь знает в чем дело?
ОС у меня WinXP 2, файл сохранен с расширением .py

Автор: pythonwin 9.11.2009, 16:58
http://rupy.ru/member/5/#paper-6

Модератор: Название темы должно отражать ее суть!

Добавлено через 5 минут и 9 секунд
Цитата

$ python
prinPython 2.5.2 (r252:60911, Jan  4 2009, 17:40:26)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
t>>> print 'Hello!'
Hello!
>>> print u"Привет!"
Привет!
>>> print unicode("Привет!", 'cp866')
╨Я╤А╨╕╨▓╨╡╤В!
>>> print unicode("Привет!", 'utf-8')
Привет!


PS прочитай по ссылке.

Автор: programmerVbuduchem 9.11.2009, 20:45
 Вроде правильно вписал юникод, все из примера по конференции, но тут возникает другой момент.  В командной строке Питона все выглядит так же, как и в примере, в IDLE Питоновском букве "а" присваивается почему-то значение \xe0' вместо ’\xd0\xb0’ в обычной строке и вместо ’\u0430’ в юникод-строке все равно '\xe0'  А если записать это в скрипт с добавлением команды print оно всеравно на экране быстро моргает и ничего не видно, так что не знаю работает или нет.
 Вопросы:
1. Почему неправильно работает строка raw_input("Press any key to exit") в конце программы? Если там присутствует русский язык, то при запуске программы окно быстро закрывается, а если все на английском, то нужно нажать только Enter?
2. Почему преобразование в юникод обычной строки работает в командной строке, не так отображается в IDLE и совсем не работает при записи программы в файл?

Возможно, мне нужно перейти на другую версию Питона? Сейчас у меня 2.6.4. Или может этот язык не очень дружит с виндой?

Автор: pythonwin 10.11.2009, 08:34
Цитата(programmerVbuduchem @  9.11.2009,  23:45 Найти цитируемый пост)
 Вроде правильно вписал юникод, все из примера по конференции, но тут возникает другой момент.  В командной строке Питона все выглядит так же, как и в примере, в IDLE Питоновском букве "а" присваивается почему-то значение \xe0' вместо ’\xd0\xb0’ в обычной строке и вместо ’\u0430’ в юникод-строке все равно '\xe0'  А если записать это в скрипт с добавлением команды print оно всеравно на экране быстро моргает и ничего не видно, так что не знаю работает или нет.

читай по ссылке http://rupy.ru/member/5/#paper-6

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)