2017-01-15 271 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