如果声明为负面条件

时间:2017-04-05 05:20:15

标签: python if-statement

我想为直方图准备数据。我的数据(在以下代码中使用HttpServletRequest)包含D[-200,1000]之间的值,我想将它们分配到范围if statement的二进制位。 我的代码如下所示:

[0,20]

等等。但似乎程序不理解if语句中的否定条件。因此,如果值为for t in range(0,731): if(D[t]<(-130)): xbin[t]=0 if(D[t]>=(-130) and D[t]<=(-120)): xbin[t]=1 if(D[t]>=(-120) and D[t]<=(-110)): xbin[t]=2 if(D[t]>=(-110) and D[t]<=(-100)): xbin[t]=3 if(D[t]>=(-100) and D[t]<=(-50)): xbin[t]=4 if(D[t]>=(-50) and D[t]<=0): xbin[t]=5 if(D[t]>=0 and D[t]<=50): xbin[t]=6 <0或其他值,则将xbin=6分配给< -120无关紧要。 我怎样才能解决这个问题? 谢谢!

1 个答案:

答案 0 :(得分:0)

Python理解负面比较。问题在于你的条件,其中一些相互冲突。要拒绝该问题,您需要使用elif而不是多个if,以便检查所有条件。此外,您不需要显式写入和在您的条件之间,python将自动链接它们并且它们具有相同的优先级。

for t in range(0,731):
     if D[t] < -130 :
        xbin[t]=0
     elif -110 <= D[t]<= -120:
        xbin[t]=1
     elif -120 <= D[t] <= -110:
        xbin[t]=2
     elif -110 <= D[t] <= -100:
        xbin[t]=3
     elif -100 <= D[t] <= -50:
        xbin[t]=4
     elif -50 <= D[t] <= 0:
        xbin[t]=5
     elif 0 <= D[t]<= 50:
        xbin[t]=6