2017-01-30 99 views
0
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無效的語法。 爲什麼它是無效的語法?蟒蛇數學代碼大於和小於不工作

+1

使用'elif'(後面是新條件,然後是冒號),而不是'else if'。 –

+0

'如果我> 16和我> 100'類似於'如果我> 100'。我想你的意思是寫'如果我> 16,我<100' –

回答

-2

在Python中,您使用elif而不是else if。你還需要一個冒號在你的else if行的末尾。

1

你有2個SyntaxErrors:

和邏輯錯誤:

  • 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") 
-2

它應該是:

elif i > 16 and i > 100: 

elif and with「:」in the en d

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") 

但更好看。