почему мой код возвращает 0, даже если word существует в файле

#python #string #null

Вопрос:

Итак, это код, в котором я пытаюсь найти слово, которое вводит пользователь, и посмотреть, сколько строк содержит это слово, и если ни одна строка не содержит слово, вывод которого не найден, однако, когда я ввожу слово, которое, как я знаю, существует в файле, оно возвращает 0, и не только слово в файле, оно даже не выводится, не найдено, как я хочу. (вот мой код)

 response = input('Please enter words: ') letters = response.split()  count = 0  with open("alice.txt", "r", encoding="utf-8") as program:  for line in program:  if letters in line:  count  = 1  if(count lt; 1):  print("not found") print(count)  

Комментарии:

1. «разделить» возвращает список, но «строка» — это строка. Список никогда не бывает в строке. Вам нужен внутренний цикл для проверки каждого слова в «буквах» по одному.

2. str.split() возвращает список строк, разделенных пробелом. Почему в приглашении ввода говорится «введите слова», но вы назначаете его после разделения переменной с именем letters ?

3. Обратите внимание, что, поскольку в настоящее время он имеет отступ, if count lt; 1 блок является недоступным кодом, потому что это условие никогда не будет истинным.

Ответ №1:

То, что вы делаете, не сработает, функция разделения возвращает список строк, и вы сверяете этот список с одной строкой.

Это то, что ты хотел сделать?

 response = input("Please enter a word: ") count = 0  with open("alice.txt", 'r') as program:  for line in program:  if response in line:  count  = 1  if count == 0:  print("not found")  print(count)  

Комментарии:

1. спасибо за вашу помощь, но когда я попытался использовать его, он сказал, что не найден, однако слово, которое я использовал, находится в файле

Ответ №2:

Вам не нужна функция разделения и место, если условие неверно в вашем коде. Пожалуйста, обратитесь к приведенному ниже коду.

 response = input('Please enter word: ') count = 0  with open("alice.txt", "r", encoding="utf-8") as program:  for line in program:  if response in line:  count  = 1  if count == 0:   print('Not found') else:  print(count)  

Комментарии:

1. Привет, спасибо за помощь, но когда я попытался его использовать, он сказал, что не найден, однако слово, которое я использовал, находится в файле

Ответ №3:

У вас возникла проблема с открытием файла txt в виде одной строки, а не в виде списка отдельных строк.

Добавление «.readlines()» может решить эту проблему!

Я также пошел дальше и установил отдельные строки как «строка», где затем я ищу входное слово в новой переменной «строка».

 response = input('Please enter words: ') letters = response.split()   count = 0 foo = open(  "alice.txt", "r",  encoding="utf-8").readlines()   for line in foo:  for word in letters:  if word in line:  count  = 1   if(count lt; 1):  print("not found") else:  print(count)  

Комментарии:

1. Спасибо за ответ и помощь, однако, когда я попытался использовать его, он сказал, что не найден, однако слово, которое я использовал, находится в файле