如何编写可变数量的if语句?(蟒蛇)

use*_*391 -4 python for-loop if-statement

很简单,如果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
Run Code Online (Sandbox Code Playgroud)

...等等...

Bar*_*mar 8

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

n = 2 + (x - 2)/4 
Run Code Online (Sandbox Code Playgroud)

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

if x == 1:
    n = 1
elif x <= 5:
    n = 2
elif x <= 9:
    n = 3
... and so on
Run Code Online (Sandbox Code Playgroud)