Уведомления

Группа в Telegram: @pythonsu

#1 Март 9, 2015 18:40:47

Lotus
Зарегистрирован: 2015-03-09
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Не работает метод title() для строки

Добрый день. Есть проблема с преобразованием регистра в строке. Список строк с фамилиями загружается из текстового файла, от туда берётся случайная строка. Далее над ней выполняется метод title(), так как в файле все строки в верхнем регистре.

    f_fam = open('F_Zh.txt', 'r')       
    fam_list = f_fam.readlines()           
    name_list = f_name.readlines()          
    fam = random.choice(fam_list)[:-1]      
    fa = fam.title()
До последней строки всё работает как надо, но строка fa = fam.title() не делает ничего, в переменную fa, строка из fam копируется без изменений, вся в верхнем регистре. Сроки состоят из русских букв. Кодировка в открываемом файле, файле .py и в среде выполнения UTF-8.
Подскажите в чём проблема.

Офлайн

#2 Март 9, 2015 18:45:01

alex925
Зарегистрирован: 2015-01-08
Сообщения: 204
Репутация: +  14  -
Профиль   Отправить e-mail  

Не работает метод title() для строки

Файл в студию

Офлайн

#3 Март 9, 2015 18:57:48

Lotus
Зарегистрирован: 2015-03-09
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Не работает метод title() для строки

Файл программы.

# -*- coding: UTF-8 -*-
__author__ = 'Lotos'
import random
f_fam = open('F_Zh.txt', 'r')           # Файл с фамилиями
fam_list = f_fam.readlines()            # Список фамилий
fam = random.choice(fam_list)[:-1]      # Случайный элемент списка фамилий
fa = fam.title()
print fa

Прикреплённый файлы:
attachment RandomName.py (342 байта)

Офлайн

#4 Март 9, 2015 18:59:18

alex925
Зарегистрирован: 2015-01-08
Сообщения: 204
Репутация: +  14  -
Профиль   Отправить e-mail  

Не работает метод title() для строки

Зачем мне код? Ты его с самого начала выложил. Текстовый файл, который ты открываешь сюда залей.

Офлайн

#5 Март 9, 2015 18:59:34

Lotus
Зарегистрирован: 2015-03-09
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Не работает метод title() для строки

Файл данных

Прикреплённый файлы:
attachment F_Zh.txt (357,6 KБ)

Офлайн

#6 Март 9, 2015 19:05:27

alex925
Зарегистрирован: 2015-01-08
Сообщения: 204
Репутация: +  14  -
Профиль   Отправить e-mail  

Не работает метод title() для строки

Все работает

Офлайн

#7 Март 9, 2015 19:09:35

Lotus
Зарегистрирован: 2015-03-09
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Не работает метод title() для строки

У меня результатом выполнения является строка из заглавных букв. Скриншот прилагаю. Среда разработки PyCharm

Прикреплённый файлы:
attachment Скриншот.png (63,9 KБ)

Офлайн

#8 Март 9, 2015 19:14:49

alex925
Зарегистрирован: 2015-01-08
Сообщения: 204
Репутация: +  14  -
Профиль   Отправить e-mail  

Не работает метод title() для строки

А у вас 2, я проверял на 3. На 2 сейчас проверил, тож не работает.

Офлайн

#9 Март 9, 2015 19:17:52

Lotus
Зарегистрирован: 2015-03-09
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Не работает метод title() для строки

Да. Python 2.7.
Хм… Вроде бы стандартная функция совершенно. Не думал, что в разных версиях возможны проблемы. Не подскажете какие-нибудь альтернативы, чтобы и во второй работало?

Офлайн

#10 Март 9, 2015 19:20:35

alex925
Зарегистрирован: 2015-01-08
Сообщения: 204
Репутация: +  14  -
Профиль   Отправить e-mail  

Не работает метод title() для строки

Если честно не представляю, в чем проблема. Сейчас доку смотрю

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version