Проблемы с функцией поиска - PullRequest
0 голосов
/ 11 мая 2018

Я пытаюсь создать программу, которая позволит пользователю искать данные о бедности в конкретном округе в Южной Каролине.Программа использует словарь county, который добавляется в список counties.Проблема возникает здесь:

def search_counties(counties):
search = input('Search: ')
search = search.lower()
while search != 'q' or search != 'quit':
    if search == 'q' or search == 'quit':
        sys.exit()
    elif search != 'q' or search != 'quit':
        for i in counties:
            if search in counties:
                print_county(county)
            elif search not in counties:
                search = input("Search: ")
                search = search.lower()

Однако, текущая проблема заключается в том, что он не будет оценивать поиск вообще.Вместо этого он постоянно запрашивает новый поиск, и даже ввод 'quit' или 'q' не заканчивает его:

Search: 
Search:
Search:

Я спрашиваю об этом только после поиска по всем источникам, которые я могу найти часами.Как мне сделать так, чтобы он правильно оценивал поиск?

1 Ответ

0 голосов
/ 11 мая 2018

Вы пытаетесь найти строку ввода в списке словарей:

if search in counties:
    print_county(county)

Она всегда будет возвращать false, поэтому будет запрошен следующий ввод.Мне кажется, что вы хотели что-то вроде этого:

def search_counties(counties):
    county_names = [c.county.lower() for c in counties]

    while True:
        search = input('Search: ').lower()
        if search in ('q' ,'quit'):
            sys.exit()

        if search in county_names:
            print_county(county)

Обновление:

Обновлен код, учитывающий вашу структуру county как:

{
    "count": int(child_count),
    "poverty": float(percent),
    "median": int(median),
    "county": county_name
}
...