在 Python 中以 1 退出
Posted
技术标签:
【中文标题】在 Python 中以 1 退出【英文标题】:Exiting with 1 in Python 【发布时间】:2018-08-31 07:20:12 【问题描述】:这是我的第一个 Python 程序之一,所以我可能遗漏了一些明显的东西。
在我发布的代码的第一部分中,我想确保用户传递命令行参数。如果没有,我想显示一个错误并返回 1。当我运行没有命令行参数的代码时,程序具有预期的行为,因为错误打印并且程序退出。
但是,当我对此运行检查器时,出现错误:
处理缺少 argv[1]。预期退出代码 1,而不是 0。
关于我可能缺少什么的任何想法?
import sys
import cs50
from cs50 import get_string
def main(argv):
# Check for command line argument
if (len(sys.argv) != 2):
print("Error: Please input numeric key in command line.")
return 1
if __name__ == "__main__":
main(sys.argv)
【问题讨论】:
sys.exit(1)
是您所需要的。
是的!做到了!谢谢!
@kwicz 仅供参考,包含 if 语句条件的括号是多余的。 Python 不需要它们。
【参考方案1】:
在 blog post 中,Python 的创建者 Guido van Rossum 建议像这样编写 if __name__ == "__main__"
块:
if __name__ == "__main__":
sys.exit(main())
这样,main()
可以像普通函数一样返回一个值,并将其用作进程的退出代码。
我建议阅读该博客文章的其余部分。它包含有关设置 Python main()
函数样板以更加灵活的有用建议。
【讨论】:
您的意思是包含指向博客文章的链接吗? @user2357112 感谢您的关注。完成!以上是关于在 Python 中以 1 退出的主要内容,如果未能解决你的问题,请参考以下文章
Command CompileSwift 在 Xcode 10 中以非零退出代码失败 [重复]
为啥构建后步骤 (xcopy) 偶尔会在 TeamCity 构建中以代码 2 退出?
尽管正确打印出所有输出,但程序未在 Java 中以退出代码 0 结束