如何将if语句的结果分配给方程式?

时间:2019-08-10 12:07:33

标签: python

我是python的新手,我必须运行一个程序以根据用户输入获取正确的利率,并使用所获得的利率来计算每月获得的利息。

对于赚取的利息,我正在尝试使用打印结果来创建一个公式来计算每月赚取的利息。但是,我已经尝试了很多事情,但不确定如何纠正。


transaction_category = [2000, 2500, 5000, 15000, 30000]
first_50k_1_category_rates = [0.05, 1.55, 1.85, 1.90, 2.00, 2.08]

if (count == 1) and (account_balance <= 50000) and (total_eligible_monthly_transactions < transaction_category[0]):
    print(f'Interest rate applicable is: {first_50k_1_category_rates[0]: .2f}%')

if (count == 1) and (account_balance <= 50000) and (transaction_category[0] <= total_eligible_monthly_transactions < transaction_category[1]):
    print(f'Interest rate applicable is: {first_50k_1_category_rates[1]: .2f}%')

3 个答案:

答案 0 :(得分:1)

您的问题尚不清楚,但是我想您正在寻找类似的东西

if (count == 1) and (account_balance <= 50000) and (transaction_category[3] <= total_eligible_monthly_transactions < transaction_category[4]):
    applicable_interest_rate = first_50k_1_category_rates[4]

elif (count == 1) and (account_balance <= 50000) and (total_eligible_monthly_transactions >= transaction_category[4]):
    applicable_interest_rate = first_50k_1_category_rates[5]

print(f'Interest rate applicable is: {applicable_interest_rate: .2f}%')

这只是草图;您必须确保始终定义新变量,然后在最终方程式中使用它。

可能重复的条件也应该重构,因此您不必一遍又一遍地比较相同的东西。

if (count == 1) and (account_balance <= 50000):
    if transaction_category[3] <= total_eligible_monthly_transactions < transaction_category[4]:
        applicable_interest_rate = first_50k_1_category_rates[4]
    elif total_eligible_monthly_transactions >= transaction_category[4]:
        applicable_interest_rate = first_50k_1_category_rates[5]

但是同样,在没有看到完整脚本的情况下,不清楚如何重构。这仅仅是说明这一想法的一个例子。

答案 1 :(得分:0)

因此,您可以在一个代码块中执行if / else,或将这些print语句转换为变量并返回它们。两者都会说结果为var name。

def foo(condition1, condition2):

    if condition1 < condition2:
        result = (1 + 1)

    if 1 == False:
        result = (1 - 1)

    return result

print(foo(1, 2))
  • 在诸如(lambda :f"b:{b}",lambda :f"a:{a}")[a>b]()这样的更具功能性的编程方面,还有更好的方法可以做到这一点,但是看来这种代码风格势在必行,所以请坚持这一点。

答案 2 :(得分:0)

如果您在使用示波器方面遇到麻烦,则可以尝试以下(安全的)方法:

_scope = {
    "applicable_interest_rate1": first_50k_1_category_rates[4],
    "applicable_interest_rate2": first_50k_1_category_rates[5],
}

def foo(condition1, condition2):

    if condition1 < condition2:
        result = _scope["applicable_interest_rate1"]

    if 1 == False:
        result = _scope["applicable_interest_rate2"]

    return result


print(foo(1, 2))