if __name__ == "__main__" 语法错误

Posted

技术标签:

【中文标题】if __name__ == "__main__" 语法错误【英文标题】:if __name__ == "__main__" syntax error 【发布时间】:2017-09-10 07:58:48 【问题描述】:
 # insert values to db
    try:
            if sensor1error == 0:
                    sqlCommand = "INSERT INTO temperaturedata SET dateandti$
                    # This row below sets temperature as fahrenheit instead$
                    #sqlCommand = "INSERT INTO temperaturedata SET dateandt$
                    databaseHelper(sqlCommand,"Insert")
                    sys.exit(0)
    if __name__ == "__main__":
    main()

在最后一行我有一个错误我不知道这是什么。请帮帮我..

【问题讨论】:

您在进入下一个区块之前错过了except 语句,以及sqlCommand 中的一些引号 另外,你的字符串在多行... 请阅读python tutorial 【参考方案1】:

我对代码块做了一些更改。其中添加了缺少的 except 块。并修复了缩进错误。所以这应该会有所帮助。否则你必须更清楚你得到什么样的错误。

try:
    if sensor1error == 0:
        sqlCommand = "INSERT INTO temperaturedata SET dateandti$"

        # This row below sets temperature as fahrenheit instead$
        #sqlCommand = "INSERT INTO temperaturedata SET dateandt$

        databaseHelper(sqlCommand,"Insert")
        sys.exit(0)
except Exception as exc:
    print(exc)

if __name__ == "__main__":
    main()

【讨论】:

值得注意的是,OP 应该将Exception 替换为与其用例更相关的特定异常类。 是的,我会同意的。【参考方案2】:

尝试先学习 Python 语法,以防万一你的大脑思绪万千,却找不到下面的问题,你可以检查一下。

    except 块丢失

    Pythonindentation error有一个常见错误,代码应该在if块里面。

代码修改可以类似,

from __future__ import print_function  

try:
    if sensor1error == 0:
        sqlCommand = "INSERT INTO temperaturedata SET dateandti$"

        # This row below sets temperature as fahrenheit instead$
        #sqlCommand = "INSERT INTO temperaturedata SET dateandt$

        databaseHelper(sqlCommand,"Insert")
        sys.exit(0)
except Exception as e:
    print(e)

if __name__ == "__main__":
    main()

【讨论】:

这是此代码中的众多错误之一。如果您要回答,至少要解决所有问题。 @cᴏʟᴅsᴘᴇᴇᴅ 我在编辑时不小心按下了提交答案以获得正确的问题解释;之前一些资深版主否决了投票问题,因为问的可能不是初学者,可能是他工作的一部分,他很困惑花了很长时间才解决这个问题;我知道那种感觉:/【参考方案3】:

请在您的 SQL 查询中使用多行字符串,并且不要在两者之间使用 cmets。

另外,如果您要放置一个 try 块,则需要捕获异常,添加一个 except 块来处理该异常

最后在if 块中适当缩进。

【讨论】:

以上是关于if __name__ == "__main__" 语法错误的主要内容,如果未能解决你的问题,请参考以下文章

if __name__ == "__main__": 做啥?

unittest: if __name__ == "__main__" 理解

python if __name__ == "__main__"

if __name__ == "__main__" 语法错误

if __name__ == "__main__": 和 Python 中的递归 [重复]

if __name__=="__main__"作用