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

Python中如何在if语句中设置取款透支限额并修正逻辑错误?

修复取款逻辑中的条件判断错误

你的代码核心问题出在第14行的or max逻辑上——Python中非零数值会被视为True,max是余额加50的正数,所以这个条件永远成立,导致所有大于等于余额的取款请求都会进入第二个分支,第三个拒绝取款的分支永远不会触发。

要实现「取款金额最多超出余额50时允许透支,超出更多则拒绝」的需求,需要把第二个条件修改为取款金额大于余额且小于等于余额+50,同时保持合理的条件匹配顺序。

修正后的完整代码:

bal = input("What is your account balance?:            ")
intbal = int(bal)

withdraw = input("How much would you like to withdraw?:     ")
intwith = int(withdraw)

max_overdraw = intbal + 50  # 重命名变量,避免和Python内置函数max冲突

if intwith <= intbal:
    print()
    print("Withdrawal successful. Current balance:   ", intbal - intwith)
elif intbal < intwith <= max_overdraw:
    print()
    print("Withdrawal successful, the account is overdrawn. Current balance:        ", intbal - intwith)
elif intwith > max_overdraw:
    print()
    print("Withdrawal refused, insufficient funds. Current balance:", intbal)
else:
    print("Invalid input")

关键修改说明:

  • 把变量max改为max_overdraw,避免和Python内置的max()函数重名,防止潜在的语法冲突
  • 第二个elif条件改为intbal < intwith <= max_overdraw,明确限定「取款金额大于余额,但不超过余额+50」的允许透支范围
  • 保持条件顺序:先判断正常取款,再判断允许的透支场景,最后判断超出限额的拒绝请求,确保每个分支只会匹配对应的情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 07:27:37