2016-01-01 3 views
0

Проблема: откройте файл week.txt и прочитайте его по строкам. Для каждой строки разделите строку на список слов, используя функцию split(). Программа должна составить список слов. Для каждого слова в каждой строке проверьте, есть ли слово в списке, и если оно не добавлено в список. Когда программа завершается, сортируйте и распечатайте полученные слова в алфавитном порядке. Вы можете загрузить данные примера в http://www.pythonlearn.com/code/romeo.txtДобавить использование приложения (с прикрепленным изображением и отладочным изображением)

Файл week4.txt это один загрузить с веб-сайта (remeo.txt) и имя, как week4.txt

fh = open(fname) 
wordlist = [] 
x = 0 
for line in fh: 
    line = line.rstrip() 
    words = line.split() 
    wordsnum = len(words) 
    while x < wordsnum: 
     if x-1<1: 
      firstword = words[x] 
      wordlist = wordlist.append(firstword) 
      x = x+1 
      continue 
     newword = words[x]; 
     if newword == words[x-1]:continue 
     wordlist = wordlist.append(newword) 
     x = x+1 
wordlist = wordlist.sort() 
print wordlist 

enter image description here

У меня проблема с заявлением append. Не могли бы вы помочь мне с этой проблемой? Большое спасибо!

+0

могли бы вы опубликовать ошибку в сообщении, а не скриншот? спасибо – Clay

+0

Было бы очень признательно, если бы были более конструктивные предложения относительно решений. Спасибо –

+1

Возможный дубликат [Python: Ошибка атрибута - объект «NoneType» не имеет атрибута «что-то»] (http://stackoverflow.com/questions/8949252/python-attribute-error-nonetype-object-has-no-attribute -что нибудь) – Clay

ответ

0

Проблема с моим кодом является то, что я использую

wordlist = wordlist.append(newword) 

Дело в том, что Append является функцией, я не могу использовать знак равенства.

Таким образом, правильный код должен быть

fname = raw_input('Enter file name: ') 
if len(fname) == 0: 
    fname = 'week4.txt' 

fh = open(fname) 
lst = list() 
x = 0 
for line in fh: 
    words = line.strip().split() 
    wordsnum = len(words) 
    while x < wordsnum: 
     if x-1<1: 
      lst.append(words[x]) 
      x = x+1 
      continue 
     if words[x] == words[x-1]:continue 
     lst.append(words[x]) 
     x = x+1 
lst.sort() 
print lst 
Смежные вопросы