Прикреплённый файл «notepickle.py»

Загрузка

   1 #!/usr/bin/env python
   2 # coding: utf
   3 '''
   4 Записная книжка. В списке хранятся различные объекты Python, которые можно в него добавлять с клавиатуры (используется input()). Напишите программу, которая сохраняет ввод в файл, если видит специальную завершающую последовательность, и восстанавливает данные оттуда при последующем запуске.
   5 
   6     Подсказка: input() — очень опасная функция, она выполняет eval() от введённой строки, следовательно, если вы определите функцию Quit() в программе, а потом введёте Quit() со стандартного ввода, то input() эту функцию выполнит!
   7 
   8     Ввести ещё несколько функций, например, List(начало, конец) для просмотра пронумерованного списка (если параметры не указаны — всего) и Delete(начало, конец)
   9 '''
  10 
  11 import pickle,os
  12 
  13 Notes,NoteName=[],"Notes.data"
  14 
  15 if os.path.exists(NoteName):
  16     NoteFile=file(NoteName)
  17     Notes=pickle.load(NoteFile)
  18     NoteFile.close()
  19 
  20 def Quit():
  21     global Cont, Data
  22     Cont,Data=False,False
  23 
  24 def List(start=0,end=None):
  25     global Data
  26     if end is None: end=len(Notes)
  27     for i in xrange(start,end):
  28         print "{0:3} {1}".format(i,Notes[i])
  29     Data=False
  30 
  31 def Delete(pos):
  32     global Data
  33     del Notes[pos]
  34     Data=False
  35 
  36 Cont=True
  37 
  38 Data=True
  39 while Cont:
  40     Tip=Data and "OK> " or "  > "
  41     Data=True
  42     try:
  43         Obj=input(Tip)
  44     except SyntaxError:
  45         Data=False
  46     except NameError, msg:
  47         # Грязные хаки вместо того, чтобы просто использовать raw_input()
  48         Obj=msg.args[0][6:-16]
  49     except Exception, msg:
  50         print msg
  51         Data=False
  52     if Data: Notes.append(Obj)
  53 
  54 NoteFile=file(NoteName,"w")
  55 pickle.dump(Notes,NoteFile)
  56 NoteFile.close()

Прикреплённые файлы

Для ссылки на прикреплённый файл в тексте страницы напишите attachment:имяфайла, как показано ниже в списке файлов. Не используйте URL из ссылки «[получить]», так как он чисто внутренний и может измениться.

Вам нельзя прикреплять файлы к этой странице.