【问题标题】:How can I write a variable number of if statements? (Python)如何编写可变数量的 if 语句? (Python)
【发布时间】:2014-03-07 21:01:32
【问题描述】:

对于 x 是从 1 开始的任何正整数的情况,如何编写以下内容很简单?

if x == 1:
    n = 1
elif 2 <= x <= 5:
    n = 2
elif 6 <= x <= 9:
    n = 3
elif 10 <= x <= 13:
    n = 4
elif 14 <= x <= 17:
    n = 5

...等等...

【问题讨论】:

    标签: python if-statement for-loop


    【解决方案1】:

    您不需要if 或循环,它是一个简单的封闭式数学关系:

    n = 2 + (x - 2)/4 
    

    顺便说一句,您不需要在 elif 语句中测试范围的两端。由于它们是按顺序执行的,因此您知道该数字大于范围的底部,所以它只是:

    if x == 1:
        n = 1
    elif x <= 5:
        n = 2
    elif x <= 9:
        n = 3
    ... and so on
    

    【讨论】:

    • (x - 2) / 4 + 2?我认为您的表达式为 x = 14 返回 4
    • Barmar - 感谢您的回复,但这不会返回正确的值,例如。对于 x = 10, n = 3 使用您的代码。
    • 我原来的公式有误,现在试试吧。
    • 不,(10 - 2) / 4 + 2 = 4,正如预期的那样。该函数对x = 1 和其他xs 分别运行。您的新公式为x = 1 返回n = 2。我认为x=1是封闭形式之外的一个特例
    • 我删除了我的回复,认为@Barmar 正在编辑他的回复。我错了,x = 1 不是特例。我会删除我的帖子,让我们保持一个可靠的回应。
    猜你喜欢
    • 1970-01-01
    • 2013-04-01
    • 1970-01-01
    • 2018-01-24
    • 2016-06-28
    • 1970-01-01
    • 1970-01-01
    • 2021-07-30
    • 1970-01-01
    相关资源
    最近更新 更多