Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 7, 2014 18:08:33

eiler13
Зарегистрирован: 2013-02-25
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

проблема с вводом и выводом русских символов

В коротком примере попытка решить задачу: ввести русское слово и удалить из него все буквы ‘ы’ и ‘и’.

#!/usr/bin/python
# -*- coding: utf-8 -*-
string=raw_input("Слово? ")
print string.translate(None,"ыи")
$./test-ru.py 
Слово? ыыыаааиии
���
локаль в консоле utf8, кодировка текста скрипта тоже в utf8.

Пробую применить decode и encode - не помогает , например :
#!/usr/bin/python
# -*- coding: utf-8 -*-
string=raw_input("Слово? ")
print string.translate(None,"ыи").encode('utf8')
$ ./test-ru.py 
Слово? ыыыаааииии
Traceback (most recent call last):
  File "./test-ru.py", line 4, in <module>
    print string.translate(None,"ыи").encode('utf8')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb0 in position 0: ordinal not in range(128)

Помогите разобраться с вводом, обработкой и выводом слов с русскими символами.

Отредактировано eiler13 (Янв. 7, 2014 18:11:58)

Офлайн

#2 Янв. 7, 2014 18:23:00

xorox
Зарегистрирован: 2014-01-07
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

проблема с вводом и выводом русских символов

Попробуй почитать тут, может поможет.

Офлайн

#3 Янв. 7, 2014 18:48:48

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

проблема с вводом и выводом русских символов

eiler13
Помогите разобраться с вводом, обработкой и выводом слов с русскими символами.

string - зарезервированное слово.
В программе нужно работать ТОЛЬКО с Unicode.

lst_char = u'ыи'
dict_chars = {ord(c): None for c in lst_char}
s = raw_input().decode('utf-8')
print(s.translate(dict_chars))

Выведи в своём коде len(string), потом посчитай символы сам, потом удивись.
Для понимания, почему так, смотреть видео
А так же читать, что такое Unicode





Отредактировано Budulianin (Янв. 7, 2014 18:50:56)

Офлайн

#4 Янв. 7, 2014 19:26:58

eiler13
Зарегистрирован: 2013-02-25
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

проблема с вводом и выводом русских символов

Budulianin
А метода удаления символов для строк не существует? мне ничего не удалось найти для этого, кроме translate.

Офлайн

#5 Янв. 7, 2014 19:34:22

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

проблема с вводом и выводом русских символов

eiler13
А метода удаления символов для строк не существует? мне ничего не удалось найти для этого, кроме translate.

Все методы(в списке атрибутов) строк - print(dir(''))

Прочитать описание метода - help(''.translate)

А translate не удаляет символы ?



Отредактировано Budulianin (Янв. 7, 2014 19:37:22)

Офлайн

#6 Янв. 7, 2014 19:38:33

eiler13
Зарегистрирован: 2013-02-25
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

проблема с вводом и выводом русских символов

Budulianin
более точно заменяет :-)
P.S. я просто уточняю, может что-то пропустил

Офлайн

#7 Янв. 7, 2014 19:42:53

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

проблема с вводом и выводом русских символов

eiler13
P.S. я просто уточняю, может что-то пропустил

Наверно ты упустил, то что, в Python строка - неизменяемый тип данных



Отредактировано Budulianin (Янв. 7, 2014 19:45:27)

Офлайн

#8 Янв. 7, 2014 19:53:44

eiler13
Зарегистрирован: 2013-02-25
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

проблема с вводом и выводом русских символов

Budulianin

нет это я хорошо усвоил :-)


P.S. теоретически может существовать метод

новая_строка=строка.delete('символы_для_удаления')

strip же удаляет пробелы

Офлайн

#9 Янв. 7, 2014 19:56:34

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

проблема с вводом и выводом русских символов

eiler13
новая_строка=строка.delete('символы_для_удаления')
это делает translate

Ещё это делает вышеупомянутый strip(только на концах)

Budulianin
P.S. теоретически может существовать метод

Не нужно гадать, нужно читать доку.



Отредактировано Budulianin (Янв. 7, 2014 20:11:39)

Офлайн

#10 Янв. 9, 2014 19:23:04

pyr0
Зарегистрирован: 2013-12-18
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

проблема с вводом и выводом русских символов

eiler13
Помогите разобраться с вводом, обработкой и выводом слов с русскими символами.
Не ради холивара, но все же предложу использовать Python 3. Он прекрасно работает с кириллицей, без всяких decode и encode

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version