You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何无需新增判断分支,让代码适配任意银行账户执行相同操作?

优化银行账户操作代码:无需新增判断分支处理任意账户

我写了一段模拟银行余额查询的Python代码,输入账号就能输出对应账户余额。但现在的问题是,每新增一个账户就得手动加一条判断分支(示例代码如下),账户多了根本不实用。怎么改才能不用为每个账户加判断,就能对任意账户执行相同操作?

原代码示例:

print("welcome to bank!\n")
bank = {
    "sam": [1234, 150],
    "bob": [1235, 250],
}

print("please select an action:\n")
print(
    "1. check balance \n2. withdraw money \n3. deposit money \n4. exit\n"
)
action = int(input("selected action:"))
accnuminput = int(input("please enter account number:"))
if action == 1:
    if accnuminput == (bank["sam"][0]):
        print(bank["sam"][1])

此前新增账户的冗余写法:

if accnuminput == (bank["sam"][0]):
    print(bank["sam"][1])
if accnuminput == (bank["bob"][0]):
    print(bank["bob"][1])

优化方案

核心思路是避免逐个编写判断分支,通过遍历或优化数据结构直接定位账户,以下是两种实用方法:

方法1:遍历字典查找对应账号

不用写多个if,直接遍历字典中的所有账户信息,匹配输入的账号后执行操作。新增账户时只需往bank字典里加键值对,无需修改操作逻辑。

print("welcome to bank!\n")
bank = {
    "sam": [1234, 150],
    "bob": [1235, 250],
}

print("please select an action:\n")
print(
    "1. check balance \n2. withdraw money \n3. deposit money \n4. exit\n"
)
action = int(input("selected action:"))
accnuminput = int(input("please enter account number:"))

if action == 1:
    # 遍历所有账户信息,匹配账号
    for user_info in bank.values():
        if user_info[0] == accnuminput:
            print(f"账户余额:{user_info[1]}")
            break
    else:
        # 遍历完没找到匹配账号
        print("未找到该账户!")

方法2:优化字典结构(推荐)

把字典的键改成账号,值存储用户名和余额的组合。这样输入账号后可以直接通过键访问账户信息,无需遍历,效率更高,新增账户也只需添加新的键值对。

print("welcome to bank!\n")
# 优化结构:账号作为键,值为[用户名, 余额]
bank = {
    1234: ["sam", 150],
    1235: ["bob", 250],
}

print("please select an action:\n")
print(
    "1. check balance \n2. withdraw money \n3. deposit money \n4. exit\n"
)
action = int(input("selected action:"))
accnuminput = int(input("please enter account number:"))

if action == 1:
    # 直接通过账号查找账户
    account = bank.get(accnuminput)
    if account:
        print(f"{account[0]}的账户余额:{account[1]}")
    else:
        print("未找到该账户!")

两种方案对比

  • 方法1适合不想改动原有数据结构的场景,逻辑简单,但账户数量较多时遍历效率略低。
  • 方法2是更高效的方案,代码简洁,新增账户只需执行bank[新账号] = [用户名, 余额],完全不需要修改操作逻辑,扩展性更强。

内容的提问来源于stack exchange,提问作者novaminer66

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 23:53:17