Python 3.x 代码未执行时,程序跳出循环并等待另一个命令

Python 3.x 代码未执行时,程序跳出循环并等待另一个命令,python-3.x,Python 3.x,我试图在数据库中找不到任何东西时返回“search not found”,但程序只是跳出了循环 我尝试检查0或',但发现数据库返回NoneType。我现在正在检查None,但代码仍然没有执行 def search(): def searchmenu(): 打印(“”) ans=str(输入('再次搜索或返回[m]主菜单:')) ans=ans.下() 如果ans=='s': Inventory.search() elif ans=='m': 菜单=主菜单() menu.menuops() 其他:

我试图在数据库中找不到任何东西时返回“search not found”,但程序只是跳出了循环

我尝试检查
0
'
,但发现数据库返回
NoneType
。我现在正在检查
None
,但代码仍然没有执行

def search():
def searchmenu():
打印(“”)
ans=str(输入('再次搜索或返回[m]主菜单:'))
ans=ans.下()
如果ans=='s':
Inventory.search()
elif ans=='m':
菜单=主菜单()
menu.menuops()
其他:
打印('无效的菜单选项')
搜索菜单()
mydb=mysql.connector.connect(host=“localhost”,user=“root”,password=“”,database=“pharmd”)
cursor=mydb.cursor()
query=str(输入(“搜索:”)
如果查询!="":
cursor.execute('SELECT*FROM druges,其中名称为“%”+query+'%”)
结果=cursor.fetchall()
如果有结果!=无:
对于结果中的数据:
打印('找到!')
打印(数据)
搜索菜单()
其他:
打印('未找到结果')
其他:
打印('请输入有效的搜索!')
打印(“”)
Inventory.search()

问题是
cursor.fetchall()
只返回一个空元组
()


您可以根据for检查
cursor.rowcount
中的空结果。

为什么
search菜单中有
search
,这是打字错误吗?