gpt4 book ai didi

python - 我的代码未按 python 3 中的 try 和 except 函数的预期运行

转载 作者:行者123 更新时间:2023-12-01 08:27:03 25 4
gpt4 key购买 nike

所以我在使用 Python 时遇到了一个奇怪的问题,该问题与 try 和 except 函数有关。它应该允许我重新输入客户,在本例中是 c2,因为 c1 正在将资金转移到 c2。然而,它给了我一个关键错误,而不是说用户不在数据库中并要求我重新输入客户名称。尽管存在视觉错误而不是功能错误,但在下面的代码中第二次使用 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 block 中的 keyerror:

try:
c2 = ....
except KeyError:
print("\n>>>An exception occured ~ invalid i/p")
print("\t~Customer not in database")

编辑:您可以将您的 try/except 重组为:

        try:
c2 = input("Customer 2")
customer2 = BankSystem.c[c2]
if "c2" in BankSystem.c: ## check for valid account id
print(customer2)
amount = float(input("Amount to transfer "))
self.tranfer(customer2, amount)
else:
print("\n>>>>>>>account:{} does not exist".format("c2"))
print(self)
print(customer2)
except KeyError:
print("\n>>>An exception occured ~ invalid i/p")
print("\t~Customer not in database")
except ValueError:
print("\n>>>An exception occured ~ invalid i/p")
print("\t~Non-numeric data entered")

关于python - 我的代码未按 python 3 中的 try 和 except 函数的预期运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54169427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com