【问题标题】:Exiting with 1 in Python在 Python 中以 1 退出
【发布时间】: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 不需要它们。

标签: python python-3.x return cs50


【解决方案1】:

blog post 中,Python 的创建者 Guido van Rossum 建议像这样编写 if __name__ == "__main__" 块:

if __name__ == "__main__":
    sys.exit(main())

这样,main() 可以像普通函数一样返回一个值,并将其用作进程的退出代码。

我建议阅读该博客文章的其余部分。它包含有关设置 Python main() 函数样板以更加灵活的有用建议。

【讨论】:

  • 您的意思是包含指向博客文章的链接吗?
  • @user2357112 感谢您的关注。完成!
猜你喜欢
  • 2019-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-01
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多