2017-01-15 210 views
-3

有了這段代碼,我試圖生成簡單的乘法表。程序應該要求輸入並在最大15的範圍內輸入多個數字,然後爲該數字生成乘法表。 if_name_ =='main':行I在冒號後面出現語法錯誤。我通常在python 2中編程,所以python 3對我來說有點新,但我不確定它們有什麼不同。下面我列出了簡短但完整的代碼。任何幫助將非常感激。Python 3語法錯誤無效語法

'''Multiplication Table''' 

def multi_table(a): 
    for i in range(1,16): 
     print(' {0} x {1} = {2} '.format(a, i, a*i)) 



if_name_ == '_main_': 
    a = input('Enter a number: ') 
    multi_table(float(a)) 
+3

'if_name_'?你的意思是如果__name__ ==「__main __」'? – Maroun

+0

好的,但是我在冒號後發現錯誤。 – Bbrown

+1

由於沒有正確的if語句,你會在冒號中看到錯誤。你的語法是錯誤的,因此*語法*錯誤。 – excaza

回答

0

As @Maroun Maroun說得對,它必須是if __name__ == "__main__"。但你不需要它。只需在底部寫下:

'''Multiplication Table''' 

def multi_table(a): 
    for i in range(1,16): 
     print(' {0} x {1} = {2} '.format(a, i, a*i)) 

a = input('Enter a number: ') 
multi_table(float(a)) 

也應該工作。

編輯:在官方文檔:

https://docs.python.org/3/library/main.html

if __name__ == "__main__":

+0

這樣做的缺點是,如果您稍後想要'導入''multi_table'函數以供其他地方使用,則會阻止輸入。見例如[*「if __name__ ==」__main __「:'do?」](http://stackoverflow.com/q/419163/3001761)是什麼? – jonrsharpe

+0

這是真的,@jonrsharpe,但如果它應該是一個庫,他不會把它放在與輸入相同的文件 – user7185318

+0

因此,它沒有工作就沒問題,但即使當我改變線有兩個下劃線我仍然有語法錯誤。我試圖理解爲什麼。 – Bbrown

3
if_name_ == '_main_': 
    a = input('Enter a number: ') 
    multi_table(float(a)) 

應該是:

if __name__ == "__main__": 
    a = input('Enter a number: ') 
    multi_table(float(a)) 

注意兩個變量__name____main__具有身邊兩個下劃線,並且必須有之間的空間,如果關鍵詞和條件的開始。

+0

'=='__main __':' - 注意#下劃線 – jonrsharpe

+0

是的,我還在編輯我的答案。 – Inconnu

+0

*變量'__name__'和'__main__' *我懷疑'__main__'是一個變量。 – iBug