python - 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 我怎样才能摆脱这种可怕的情况?
解决方案
您的函数缺少return
语句,以防帐户金额变为负数。然后它返回None
。
这就是为什么balance = manage_account(balance, '-', 20000)
is None
,并且当您第二次调用该函数时,会在 处引发错误balance - money
。将以下几行'='
作为参数传递给函数时会出现类似问题。choice
根据您的函数所需的行为,您应该考虑使用 araise ValueError
而不是打印错误。
推荐阅读
- snowflake-cloud-data-platform - SNOWFLAKE COPY 命令不复制里面的数据
- java - 程序在 IDE 中运行良好,但不能作为导出文件
- r - 如何计算条件期望 Weibull 模型?
- latex - 如何在 gnuplot cairolatex 终端中输出多个页面?
- python - 在 python 中绘制 3d 表面的问题
- python - 与使用 python 的 sublist_B 相比,在 sublist_A 中未找到的项目索引
- java - 当我在 BST 中搜索一个单词时,如何找到它出现了多少次
- javascript - 如何在 Vuejs 中改进这个计算?
- c# - 更新二进制序列化类 c# .NET 的属性会有效地破坏文件
- javascript - 如何在javascript中选择一系列html表格单元格值?