Найти - Пользователи
Полная версия: Есть два случая строки... В одном из них работает .lower() в другом не
Начало » Центр помощи » Есть два случая строки... В одном из них работает .lower() в другом не
1
sashog
Привет)
У меня есть две строки S1 и S2. Строка S1 = “ЗаПад” , Строка S2 берется из файла f с помощью f.readline() и она тоже равна “ЗаПад”

Пробую код:
print "S1 = ", S1.lower()           # выводится запад
print "S2 = ", S2.lower() # выводится ЗаПад
Кстати, файл f открыт для чтения и записи командой f = open('file', ‘r+b’)

Мой мозг не понимать!) Как так может быть? Ошибок никаких не выводится, но по принципу работы программы регистр строки S2 должен отобрааться нижним) В чем может быть дело?
Nik
С обычными строками функция может работать некорректно. Например:
>>> s = "абЁжз"
>>> print s.lower()
абИжз
Никогда бы не подумал, что буква Ё в нижнем регистре равна букве И…. =)

Используйте Unicode-строки:
>>> s = unicode("абЁжз", "cp1251")
>>> print s.lower()
абёжз
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