python - 搜索功能问题
问题描述
我正在尝试创建一个程序,允许用户搜索来自南卡罗来纳州特定县的贫困数据。该程序使用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:
我只是在搜索了几个小时能找到的所有资源后才问这个问题。如何使其正确评估搜索?
解决方案
您正在尝试在字典列表中搜索输入字符串:
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
}
推荐阅读
- r - 如何使用 nls() 拟合指数衰减模型中的多个常数?
- html5-canvas - 使用 konva 图像模拟对象拟合/对象位置属性的最佳策略
- java - JasperReports 在固定字符串数据输入上出现 IndexOutOfBoundsException 中断(Java/Gradle 内置)
- python - Python 读取 Excel 文件时出现错误 - “我们发现某些内容存在问题......”
- c++ - 将 ANSI C 字符串转换为 UNICODE
- mysql - MySQL 中的原子读取和更新与并发工作人员
- javascript - 按不同键中的特定值对对象数组进行排序
- c++ - 如何从具有两列的 .txt 文件创建并行数组?
- python-3.x - Python 覆盖不会将输出重定向到文件
- mips - MIPS32 read_string 长度未知