所以我对Python有一个奇怪的问题,它与try和except函数有关。它应该允许我重新输入客户,在本例中是c2,因为c1正在向c2转移资金。但是,它给了我一个keyerror,而不是说用户不在数据库中,并要求我重新输入客户名称。在下面的代码中,try和except的第二个用法虽然存在视觉缺陷而不是功能性缺陷,但仍然有效。你知道吗
我尝试过改变我使用try和except的位置,尝试过在线搜索,但没有找到解决方案。我只做了几个月的Python,它是断断续续的。你知道吗
elif option == 3:
print("Option", 3)
try:
c2 = input("Customer 2")
customer2 = BankSystem.c[c2]
except ValueError:
print("\n>>>An exception occured ~ invalid i/p")
print("\t~Customer not in database")
print()
if "c2" in BankSystem.c: ## check for valid account id
print(customer2)
try:
amount = float(input("Amount to transfer "))
self.tranfer(customer2, amount)
except ValueError:
print("\n>>>An exception occured ~ invalid i/p")
print("\t~Non-numeric data entered")
else:
print("\n>>>>>>>account:{} does not
exist".format("c2"))
print(self)
print(customer2)
在文档中,“每当请求dict()对象(使用格式a=adict[key]),并且该键不在字典中时,Python就会引发KeyError。”因此,您应该检查except块中的KeyError:
编辑: 您可以将try/except重组为:
这是因为在这条线上
您正试图使用键
c2
(由用户给定)访问dict
。如果没有这样的密钥KeyError
就会发生。请注意,不使用try-except
,您可以按以下方式检查dict
是否具有键:将打印
key present
,如果您给它a
和key not present
在所有其他情况下。你知道吗相关问题 更多 >
编程相关推荐