Python 如何将if语句的结果赋给等式?

Python 如何将if语句的结果赋给等式?,python,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

我是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}%')


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

def foo(condition1, condition2):

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

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

    return result

print(foo(1, 2))
在功能性更强的编程方面,有更好的方法可以做到这一点:lambda:fb:{b},lambda:fa:{a}[a>b],但似乎这种代码风格是必需的,所以要坚持下去。
你的问题不太清楚,但我猜你在寻找类似的问题


如果count==1且account_balance的范围有问题,您可以尝试以下安全破解:

_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))

也许重新考虑一下逻辑,if语句应该选择一个计算,对吗?调用print只会告诉你发生了什么-它应该与我建议的逻辑或数学无关。是的,if语句会告诉我应该使用的利率来计算每月赚取的利息。只是不知道如何使用公式中的输出来计算所赚取的利息。你所说的输出是什么意思?print和if语句都没有输出,虽然print实际上没有返回任何输出,但我认为。在获取速率时,例如first_50k_1_category_rates或first_50k_2_categories_或_more_rates时,output as没有结果或值,因为它是一个流控制语句,也就是说,它本身就是一个野兽。፨ ፨ 所以不,你不能把if的结果用在等式中,比如说,赋值语句中。另一方面,if后面的代码块可以包含任意多的赋值,以后可以使用绑定到名称的值。请看一个例子。@tripleee我刚刚醒来,从我的手机到笔记本电脑,谢谢你指出,我把它修好了;嗨,我输入了全部代码。希望有帮助!我试着按照你说的做,但是python说适用的利率没有定义。我该怎么办?哦,你差不多提前10'给出了我的答案,我觉得我将+1并删除我的答案…这个答案的要点是,仅仅打印决定并不能告诉Python使用那个数字;您还需要将其分配给变量或在函数调用中使用它。我的建议是定义一个新变量,并在最后的等式中使用它。正如前面的答案所解释的,您需要确保定义了这个变量,即使这些条件都不成立。一种常见的方法是在代码顶部定义一个默认值的变量,然后在默认值不正确的情况下用不同的值覆盖默认值。另一种方法是将其设置为“无”,然后确保每个代码路径都用有效的数字覆盖它。如果某个代码路径未能做到这一点,这将导致回溯,这对最终用户来说很烦人,但比错误代码要好得多,错误代码会在没有任何警告的情况下产生错误结果,因为您忘记完成一组代码更改。@tripleee非常感谢!你的方法帮我解决了问题。谢谢你的耐心!