【问题标题】:python) how to solve this nontype problem? [closed]python) 如何解决这个非类型问题? [关闭]
【发布时间】:2021-11-20 10:32:10
【问题描述】:
def manage_account(balance, choice, money):
    if choice == '+':
        balance = balance + money
        return balance
    elif choice =='-':
        if balance > money:
            balance= balance - money
            return balance
        elif balance < money:
            print('There is not enough money in your account')
    else:
        print('ERROR')

balance = 10000    
balance = manage_account(balance, '-', 20000)
balance = manage_account(balance, '-', 5000)
balance = manage_account(balance, '=', 20000)
balance = manage_account(balance, '+', 1000)

为什么会出现非类型问题? Ans 我怎样才能摆脱这种可怕的情况?

【问题讨论】:

  • 您的函数缺少return 语句。因此它返回 None。
  • this 对您有帮助吗? (其他答案)
  • 下一个问题的提示:请始终包含您收到的错误消息。在这种情况下,很容易发现您的问题,但将来这会帮助其他人帮助您。
  • 还有另一个提示:尝试将代码减少到最少示例:stackoverflow.com/help/minimal-reproducible-example 您可以使用调试技术,例如使用breakpoint()

标签: python


【解决方案1】:

您的函数缺少return 语句,以防帐户金额变为负数。然后它返回None

这就是为什么balance = manage_account(balance, '-', 20000)None,当你第二次调用该函数时,balance - money 会出现错误。将'=' 作为参数choice 传递给下面几行的函数时会出现类似问题。

根据您的函数所需的行为,您应该考虑使用raise ValueError 而不是打印错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-29
    • 1970-01-01
    • 2016-10-22
    • 2020-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多