#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. Спасибо за ответ и помощь, однако, когда я попытался использовать его, он сказал, что не найден, однако слово, которое я использовал, находится в файле