【发布时间】:2021-06-10 05:54:20
【问题描述】:
此函数在我的数据库中搜索记录。除了 if 条件之外,即使条件为真,else 语句(“找不到记录”)也会继续执行。 OUTPUT screenshot
def displaySearchAcc():
try:
command = "SELECT * FROM BANK"
mycursor.execute(command)
s = mycursor.fetchall()
ch = input("Enter the account number to be searched : ")
for i in s:
i = list(i)
if i[0] == ch:
print("*" * 125)
print("ACCNO", "NAME", "MOBILE", "EMAIL", "ADDRESS", "CITY", "COUNTRY", "BALANCE")
print("=" * 125)
for j in i:
print("%14s" % j, end=' ')
print()
else:
print("record not found")
except:
print("Table not found")
【问题讨论】:
-
为什么不使用SQL的
WHERE语句在数据库中搜索。会快很多。 -
尝试在没有尝试的情况下执行代码,除了这样你可以捕获错误
-
既然已经将 i 设置为 s 中的项目,为什么还要将 i 设置为 list(i)?这对我来说没有任何意义。
-
如果您要遍历所有这样返回的记录,您可能打算使用
for .. elsewith abreak。
标签: python sql control-flow try-except