2016-02-05 2 views
0

У меня есть программа, котораяфайла положение и слово разветвитель

  • Takes текстовый файл с несколькими предложениями
  • Спрашивает пользователя, если они хотят, чтобы сжать/распаковать файл.
  • Если выбрано «Сжатие», предложение будет иметь все уникальные слова и положения этих слов, необходимые для повторного создания предложения.
  • Если выбран режим распаковки, необходимо найти сжатый текстовый файл и использовать указанный список позиций, а уникальные слова - распаковать - несколько предложений в файлах должны быть в отдельных строках.

Вот код, который мне удалось создать. Это подпрограмма, и это довольно ошибочно.

uniqueWords = [] 
positions = [] 
file = 

def valChoice(): 
    choice = (" ") 
    while choice not in ["compress", "decompress"]: 
     choice = input("Choose compress or decompress").lower() 
     if choice not in ["compress", "decompress"]: 
      print("Please input compress or decompress") 
    finalChoice = valChoice() 


if finalChoice = ("compress"): 
    print("This where i get confused..") 


elif finalChoice = ("decompress"): 
    print("This where i get confused..") 

Что не так с этим кодом? Как я могу это исправить?

+2

Этот вопрос слишком широк для типичного формата Q & A SO. Мы ищем конкретную проблему программирования, а не запрос на оптовый дизайн. Теперь, если вы можете описать алгоритм сжатия и декомпрессии, попробуйте написать код и вернуться с конкретной проблемой в реализации, мы именно то, что вам нужно. – Prune

+0

Кстати, «Зеленые яйца и ветчина» делают хороший, более крупный тестовый пример для этой программы. У него есть словарь из 50 слов, результат ставки между Теодором Гейслом (Dr. Seuss) и Беннеттом Серфом (основатель Random House Publishing) – Prune

+0

Привет! Да, это тот уровень помощи, который мне нужен сейчас. Я не знаю, нужен ли словарь в этой точке или нет, просто список всех уникальных слов и порядок, в котором эти уникальные слова должны быть включены, чтобы воссоздать предложение в текстовом файле. Для декомпрессионной части я полностью тупик, поскольку он принимает уникальные слова и позиции из сжатого файла и превращает их в исходное предложение и сохраняет его обратно в файл. Что касается алгоритмов, я могу дать ему снимок позже в тот же день! –

ответ

1

С моим предостережением выше, я сделаю снимок по тому, что, я думаю, вы просите.

Чтобы сжать файл, выполните итерацию по входным словам. Храните каждую ссылку на слова в словаре: само слово является ключом, а его позиция является значением. Если слово уже находится в словаре, добавьте новую ссылку на существующий список ссылок.

Декомпрессионные работы в обратном порядке: сделать последовательность позиций и слов. Сортируйте эту последовательность в порядке возрастания. Объедините слова, чтобы сделать исходный текст.

Это тот уровень помощи, который вам нужен прямо сейчас?

+0

Если у вас есть последующие вопросы, я подготовил, написав какой-то код, чтобы выполнить эту работу, как я ее изложил. – Prune

Смежные вопросы