Python数学代码大于和小于不工作

时间:2017-01-30 01:51:23

标签: python if-statement syntax-error

import numpy as np
import random
i = random.randint(1,100)
if i > 0 and i <16:
    print ("Broken")
else if i > 16 and i > 100
    print ("Not broken")

如果数字介于1到15之间,我试图制作它,但是如果它是16-100则不会被打破。 它说它在python中是无效的语法。 为什么语法无效?

4 个答案:

答案 0 :(得分:1)

您有2个语法错误:

这是一个逻辑错误:

  • i > 100永远不能是True

那么你也不需要and,你可以使用:

import random
i = random.randint(1,100)
if i < 16:
    print ("Broken")
else:
    print ("Not broken")

还有缩短版i > 0 and i < 16

if 0 < i < 16:
    print ("Broken")
elif 16 < i <= 100:  # compare to "<= 100" instead of "> 100"
    print ("Not broken")

答案 1 :(得分:1)

您似乎试图将嵌套的if语句“折叠”为其包含的if语句,C风格:

if (i > 0 && i < 16)
    printf("Broken\n");
else
    if (i > 16 && i < 100)
        printf("Not broken\n");

因为空白不重要,所以上面等同于

if (i > 0 && i < 16)
    printf("Broken\n");
else if (i > 16 && i < 100)
    printf("Not broken\n");

给出else if条款的错觉。

在Python中,缩进 是重要的,所以你不能像在C中那样使用相同的技巧。相反,Python有一个明确的elif子句,可用于检查多个条件在一个if语句中。

if i > 0 and i < 16:
    print("Broken")
elif i > 16 and i < 100:
    print("Not broken")

这在语义上等同于

if i > 0 and i < 16:
    print("Broken")
else:
    if i > 16 and i < 100:
        print("Not broken")

但看起来更好。

答案 2 :(得分:-2)

在Python中,您使用elif代替else if。如果是行,你还需要在你的else末尾加冒号。

答案 3 :(得分:-2)

应该是:

elif i > 16 and i > 100:

elif和&#34;:&#34;最后