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無效的語法。 爲什麼它是無效的語法?蟒蛇數學代碼大於和小於不工作
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無效的語法。 爲什麼它是無效的語法?蟒蛇數學代碼大於和小於不工作
在Python中,您使用elif
而不是else if
。你還需要一個冒號在你的else if行的末尾。
你有2個SyntaxErrors:
在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")
它應該是:
elif i > 16 and i > 100:
elif and with「:」in the en d
你似乎試圖「摺疊」嵌套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")
但更好看。
使用'elif'(後面是新條件,然後是冒號),而不是'else if'。 –
'如果我> 16和我> 100'類似於'如果我> 100'。我想你的意思是寫'如果我> 16,我<100' –