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中是无效的语法。 为什么语法无效?
答案 0 :(得分:1)
您有2个语法错误:
Python中没有else if
,只有elif
这是一个逻辑错误:
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;最后