2014-02-08 6 views
0

Итак, вот часть кода, который выбирает слово в «listb.txt» Его вторая часть строки, которая дает мне проблемы. Он может выбрать слово, основанное на первом символе ... но как только вы говорите «и», последний персонаж жалуется. пример будет «mthr» и его необходимо найти Mother. Номер - это строка, в которой он находит совпадение в файле,/2 - это потому, что между словами в файле есть пробел, поэтому он выбирает правильный.Python, соответствует первой букве слова и последней

Это должна быть вся информация, необходимая ... У кого-нибудь есть идеи? Спасибо!

with open('listb.txt','r') as f: 
    x = 1 
    for line in f: 
     if x == num/2 and len(sms_word) <= len(line) < 2*(len(sms_word)) and sms_word[0] == line[0]: 
      print line 
      break 
     x += 1      
+0

Эта линия '' 'слишком длинная! – ThiefMaster

+0

Должен ли я конденсировать его каким-то образом? Может быть, это причина, по которой она запутывается? @ThiefMaster – escGoat007

+2

Пожалуйста, разместите образец ввода и ожидаемый результат – inspectorG4dget

ответ

2

Во-первых, вы можете упростить код с enumerate:

for x, line in enumerate(f, 1): 

Во-вторых, вы можете использовать startswith и endswith для проверки строки:

if (x == num/2 and 
    len(sms_word) <= len(line) < 2 * len(sms_word) and 
    line.startswith(sms_word[0]) and 
    line.endswith(sms_word[-1])): 

Наконец, строки из файла будет имеют символ новой строки '\n' в конце, поэтому strip() их первый:

line = line.strip() 
Смежные вопросы