Форум сайта python.su
5
buddha
К сожаления не решило задачу
Офлайн
15
на выходе байты
Отредактировано buddha (Май 16, 2012 19:58:30)
Офлайн
15
IDE encoding : utf-8(т.е. так сохраняет файл pyСharm)
убрал u'':
# -*- coding: utf-8 -*- ..... categoies={1:'заметки', 2:'результаты', 3:'цели'}
>>>import Notes >>>Notes.categoies[1] '\xd0\xb7\xd0\xb0\xd0\xbc\xd0\xb5\xd1\x82\xd0\xba\xd0\xb8'
Офлайн
15
buddha
2. При заполнении атрибута класса Note.text:возможно ли вводить строкое значение без кавычек?Note: >? 'some first text'
Офлайн
15
Разобрался таки с юникодом и кодировкой.
Помогла статья http://habrahabr.ru/post/135913/
Рабочий код с коррективами:
# -*- coding: utf-8 -*- import datetime #список категорий и записная книга categories={1:'заметка', 2:'результат', 3:'цель', 4:'закрыть книгу'} notebook=[] #класс обозначает запись в записной книге class Note(): def __init__(self): self.date=datetime.date.today() #в цикле для корректного отображения значения по ключу в строке for key in categories: print key, categories[key] #выполняем до корректного ввода номера категории while True: try : categoryChoice=int(input('введите номер категории')) #закрываем при выборе 4 if categoryChoice==4: break self.category=categories[categoryChoice] except (NameError, ValueError): print 'повторите попытку' continue #raw_input возвращает значение с типом unicode, потому кодируем в utf-8 text=raw_input(self.category) self.text=text.encode('utf-8') break #отрабатывает при вызове print для экземпляра класса def __str__(self): return '%s|%s|%s' % (self.date, self.category, self.text) #добавление записи в книгу def add_note(): note=Note() if hasattr(note,'category'): notebook.append(note) #получение всех записей def get_notes(): for i,note in enumerate(notebook): print i, note
Отредактировано buddha (Май 16, 2012 23:03:50)
Офлайн