首页 > 解决方案 > python) 如何解决这个非类型问题?

问题描述

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 我怎样才能摆脱这种可怕的情况?

标签: python

解决方案


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

这就是为什么balance = manage_account(balance, '-', 20000)is None,并且当您第二次调用该函数时,会在 处引发错误balance - money。将以下几行'='作为参数传递给函数时会出现类似问题。choice

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


推荐阅读