difflib.get_close_matches () – получение желаемого результата

Основной смысл программы – начать со списков имен сотрудников, а затем отсортировать их. Подождите, пока пользователь введет «конец», чтобы прекратить заполнять список имен (у меня есть 100 имен, я сократил это для примера). Впоследствии пользователь может ввести имя сотрудника, и программа запустит difflib.get_close_matches ().

Вот вопрос; Я получаю синтаксическую ошибку для get_close_matches. Как я должен вводить difflib по-другому? Также; если у вас есть советы по повышению эффективности кода, пожалуйста, укажите, как и почему он более эффективен. Я довольно неопытен с Python, так что будьте осторожны, а?

ПРИМЕР КОДА:

import difflib employeeNames = ['Colton','Jayne','Barb','Carlene','Dick','Despina'] employeeNames.sort() endInput = input('Type "end" to view list of names.\n\n') if endInput == "end": userEmpName = input("Please enter the employee name you're searching for. We'll return the best match on record." get_close_matches(userEmpName, employeeNames, 1) 

One Solution collect form web for “difflib.get_close_matches () – получение желаемого результата”

У вашего кода есть синтаксические ошибки: сопоставьте этот код с вашим:

 import difflib employeeNames = ['Colton','Jayne','Barb','Carlene','Dick','Despina'] employeeNames.sort() endInput = raw_input('Type "end" to view list of names.\n\n') if endInput == "end": userEmpName = raw_input("Please enter the employee name you're searching for. We'll return the best match on record.") print difflib.get_close_matches(userEmpName, employeeNames, 1) 
  1. вы не закрыли открытый механизм в методе input() .

  2. Я предлагаю использовать raw_input() вместо использования input() при работе со строками.

  3. вы должны использовать classname.method() если вы импортировали только класс (в вашем случае import difflib ), поэтому difflib.get_close_matches(string,list,n) этого используйте difflib.get_close_matches(string,list,n) .

  4. Вам нужно использовать инструкцию print до возвращаемого значения.

Также get_close_matches() следует вызывать внутри if потому что если endInput!='end' то NameError будет появляться для userEmpName .

РЕДАКТИРОВАТЬ:

Я должен был спросить вас о вашей версии интерпретатора python.
В печатной строке должны использоваться фигурные скобки.

print(difflib.get_close_matches(userEmpName, employeeNames, 1))

Причина в python 2.x print – это statement (как я упоминал в 4-й точке), но в python 3.x его function .

  • Сравнение двух файлов .txt с использованием difflib в Python
  • В Python можно написать вывод генераторов (context_diff) в текстовый файл?
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.