python - 如何分别保存循环中的结果?
问题描述
我需要单独保存我的结果,以便我可以运行我的其余代码。
基本上,我必须做一个贷款项目,每种贷款的每月还款额都不同。现在的问题是每个用户可能有不同数量的不同贷款。例如,一位用户可能只有房屋贷款 (HL),而一位用户可能有 3 种不同的贷款。在我的代码中,我需要包含这将返回该特定类型贷款的每月还款额:
def meet_criteria(account_no):
if getsaving(account_no) in ["HL"]:
HLmonthly()
else:
if getsaving(account_no) in ["RL"]:
RLmonthly()
else:
if getsaving(account_no) in ["EL"]:
ELmonthly()
我还需要这样总结还款金额:
total_monthly_debt = repay1 + repay2 + repay3
但是,现在,我无法继续执行上述代码,因为我无法将结果分开以获得我需要调用满足条件()的“HL”、“RL”和“EL”。为了显示所有结果,我使用了这样的循环:
def getsaving(account_no):
query = """\
select SUBSTRING(LoanID, 1, 2)
from Account_Delinquency
where Account_Number = '{}'
""" .format(account_no)
return (execute_read_query (conn, query))
a = getsaving(account_no)
mylist = []
for i in a:
mylist.append(i)
我试图把它放在一个列表中,以便我可以将它分开,但显然,它不是那样工作的。这是我学会的一种检查列表是否为空的方法,但正如预期的那样,它无法检查列表的某些部分是否为空并且会返回错误。它还涉及一些不理想的硬编码。
if mylist[1][0]:
loan1 = mylist[1][0]
else:
pass
因此,我想看看是否有任何其他方法可以使用,以便我可以获得例如 Loan1 = HL、Loan2 = nothing、Loan3 = RL 等的结果。我也将不胜感激任何有关更改的建议据我所知,我的代码并不是最理想的。谢谢!
解决方案
meet_criteria
似乎不正确(没有返回值)
def meet_criteria(account_no):
if getsaving(account_no) in ["HL"]:
HLmonthly()
else:
if getsaving(account_no) in ["RL"]:
RLmonthly()
else:
if getsaving(account_no) in ["EL"]:
ELmonthly()
可能
def meet_criteria(account_no):
if getsaving(account_no) == "HL":
HLmonthly()
elif getsaving(account_no) == "RL":
RLmonthly()
elif getsaving(account_no) == "EL":
ELmonthly()
顺便提一句。我还没有完全理解你的问题,但我认为你想meet_criteria
返回一些东西,(如果你提供了如何使用这个函数,我肯定会知道)。
所以改为
def meet_criteria(account_no):
if getsaving(account_no) == "HL":
return HLmonthly()
elif getsaving(account_no) == "RL":
return RLmonthly()
elif getsaving(account_no) == "EL":
return ELmonthly()
进一步的改进:
if mylist[1][0]:
loan1 = mylist[1][0]
else:
pass
else
分支不做任何事情。此外,如果您之前没有定义loan1
并且稍后使用它,您会得到NameError: name 'loan1' is not defined
.
要删除 else 分支:
if mylist[1][0]:
loan1 = mylist[1][0]
得不到NameError
if mylist[1][0]:
loan1 = mylist[1][0]
else:
loan1 = 0 # if it is suposed to be integer, maybe you want None of False
推荐阅读
- angular - ngrx EffectsModule - 需要帮助了解提供商的使用情况
- python - Bot 和 Client 有什么区别?
- c++ - 在函数中传递 ifstream 迭代器
- c++ - Pow 在 C++ 中没有按预期工作
- node.js - Redux + NodeJS + Axios + Twitter API 错误?没有“Access-Control-Allow-Origin”标头
- angularjs - 如何在指令中声明的AngularJS控制器中调用函数?
- javascript - 尝试缩小对象时出错
- java - 当我使用该对象时,是否会一次又一次地调用静态最终对象的 init 方法?
- reactjs - 函数回调中的 setState
- javascript - Javascript 不会更改附加内容