У меня есть следующий код, который извлекает данные из заданного текстового файла на основе пользовательского ввода:
def read_file():
students = []
f = open('file.txt', 'r')
for line in f.readlines():
data = {}
lines = ' '.join(line.split()).split()
data[''] = int(lines[5])
data[''] = float(lines[3])
data[''] = float(lines[2])
data[''] = line[1:6].rstrip(' ')
students.append(data)
def search_student(students):
student_search = input('Search for a student: ').lower()
while student_search != 'q' and student_search != 'quit':
for student in students:
if student_search in student['Student Info'].lower():
print_student_info(student)
break
student_search = input('Search for a student: ').lower()
Эта программа возвращает следующий вывод:
>>> Search for a student:
>>> allen
>>> word: Allen, Age: 12, Height: 5'4, GPA: 3.8
>>> Search for a student:
>>> quit
>>>
Ввод предложит программе извлечь определенные c данные из текстового файла на основе слова, введенного пользователем. Все работает нормально. Я не могу понять, как добавить функцию, которая будет запрашивать другой ввод, если слово не найдено в файле.
Прямо сейчас, если слово не найдено в файле, программа просто просит о другом поиске. Однако мне нужно, чтобы он сказал что-то вроде «слово не найдено в текстовом файле», прежде чем запрашивать другой поиск.
Это результат, который я ищу:
>>> Search for a student:
>>> Jim
>>> Word: Jim, Age: 20, Height: 6'1, GPA: 2.5
>>> Search for a student:
>>> Molly
>>> Your searched student could not be found.
>>> Search for a student:
>>> Eddy
>>> Word: Eddy, Age: 15, Height: 5'6, GPA: 4.0
>>> Search for a student:
>>> quit
>>>
Я чувствую что-то вроде этого должно работать:
def search_student(file):
student_search = input('Search for a student: ').lower()
while student_search != 'q' and student_search != 'quit':
for student in students:
if student_search in student['Student Info'].lower():
print_student_info(student)
student_search = input('Search for a student: ').lower()
else:
print("Your searched student could not be found.")
student_search = input('Search for a student: ').lower()
Но он просто выводит Ваш искомый ученик не может быть найден независимо от того, какое слово я ввожу. Даже ввод ученика, который работал в первом коде, теперь больше не работает. Даже ввод "quit" больше не приводит к выходу из l oop. Пожалуйста помоги.
Новый вывод:
>>> Search for a student:
>>> Allen
>>> Your searched student could not be found.
>>> Search for a student:
>>> quit
>>> Your searched student could not be found.
>>> Search for a student: