1 回答
TA贡献1876条经验 获得超7个赞
如果您的引导不是列表中的第一个,则您将落入 elif 并返回错误消息
这可能有效:
def cib(id , library_collections):
for i in library_collections["books"]:
if id == i["ID"]:
i["Available"]=i["Available"]+1
return 'Item has successfully Been Checked In'
return 'Please restart the program and enter a valid ID'
因此,您首先遍历所有书籍,如果找不到该书籍,您将返回错误消息。
cob方法中的相同内容
循环遍历字典列表不是有效的方法。如果我正在编写类似的代码并且由于某种原因我无法使用正确的数据库,我会将 CSV 解析为 dict。数据模型可能是这样的:
{ 1: {"available": 10, "name": "Hamlet", "author": "W. Shakespeare", "year": 1609},
123: {"available": 0, "name": "Война и мир", "author": "L. Tolstoi", "year": 1869},
}
其中 1 和 123 是 ID。您也可以将字符串用作 id。然后你简单地做你的方法
def cib(id, library_collection):
try:
library_collection[id]["available"] += 1
return 'Item has successfully Been Checked In'
except:
return 'Please restart the program and enter a valid ID'
或者
def cib(id, library_collection):
if id in library_collection:
library_collection[id]["available"] += 1
return 'Item has successfully Been Checked In'
else:
return 'Please restart the program and enter a valid ID'
避免 for 循环总是好主意。
添加回答
举报