繁体   English   中英

Python 3 语法错误无效语法

[英]Python 3 syntax error invalid syntax

使用此代码,我试图生成简单的乘法表。 该程序应要求输入并将该数字乘以最大 15 的范围,并生成该数字的乘法表。 在 if_name_ == ' main ': 行之后,我以冒号后的语法错误告终。 我通常在 python 2 中编程,所以 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))
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__都有两个下划线,并且 if 关键字和条件的开头之间必须有一个空格。

正如@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__":

“无效语法”也可能是因为您忘记在前一行代码上加上括号。

在提供的示例中,(i) if后面缺少一个空格,(ii) 符号的名称应该有两对下划线: __name__ 如果这两个更正解决了您的问题,那就太好了。

但是,如果您还有另一个更神秘的未解决语法错误,请继续阅读...

最近我遇到了一个非常相似的错误消息,并且很难找到根本原因,因为错误消息似乎指向了错误的方向。 该错误似乎表明语法错误位于if语句的末尾。 但是,在 Python 3.x 中,我注意到如果在 python 源文件中发生括号不匹配错误,错误可能会在下一个块的开头而不是实际发生不匹配的位置报告。

if语句之前检查整个源代码文件中不匹配的括号是值得的。 检查您的所有( s 是否都与关闭匹配)

同样的问题。 它显示 main 或 name 未定义

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM