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__" 语法错误