这是我在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)
答案 0 :(得分:2)
在blog post中,Python的创建者Guido van Rossum建议像这样编写if __name__ == "__main__"
块:
if __name__ == "__main__":
sys.exit(main())
这样,main()
可以返回一个值,就像普通函数一样,它将被用作进程的退出代码。
我建议阅读该博客文章的其余部分。它包含有关设置Python main()
函数样板的更有用的建议,以便更灵活。