首页 > 解决方案 > 搜索功能问题

问题描述

我正在尝试创建一个程序,允许用户搜索来自南卡罗来纳州特定县的贫困数据。该程序使用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()

但是,当前的问题是它根本不会评估搜索。相反,它会不断提示进行新搜索,即使输入“退出”或“q”也不会结束搜索:

Search: 
Search:
Search:

我只是在搜索了几个小时能找到的所有资源后才问这个问题。如何使其正确评估搜索?

标签: pythonpython-3.xfunctioninput

解决方案


您正在尝试在字典列表中搜索输入字符串:

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
}

推荐阅读