在Python中退出1

时间:2018-03-22 00:39:22

标签: python python-3.x return cs50

这是我在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)

1 个答案:

答案 0 :(得分:2)

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

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

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

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