首页 > 解决方案 > 如何正确完成 python 3 脚本

问题描述

在 C++ 中,main()函数被标准化为 type int,因此应该return(0)可以成功执行。此外,程序通常会在最后打印一个换行符以进行 flush stdout,如下所示:

最小、完整、可验证的示例

hello_world.cpp

#include <iostream>
int main() {
    std::cout << "hello, world" << std::endl;

    printf("\n");
    return(0);
}

你好世界

是否有正确退出 Python 脚本的等效方法?还打印换行符,然后使用代码 0 显式退出是否有意义?

hello_world.py

import sys
print("hello, world")

print('\n')
sys.exit(0)

你好世界

特维姆 :^)

标签: pythonpython-3.xreturnexit

解决方案


当没有更多代码要运行时,python 脚本结束。教科书 hello world 程序只有一行:

print("hello, world!")

Python 的print()功能与其他语言的println()功能等价,默认打印换行符。您可以使用可选的end关键字参数更改此行为:

print("Hello", end=" ")
print("World!")

而且,如果您出于某种原因只想打印额外的一行,您甚至不必费心指定它 - 您可以print()不带参数调用它,它会打印一个空行。

您将看到的大多数 python 脚本还具有这样的功能:

if __name__ == "__main__":
    print("hello, world!")

这本质上是一个过滤器,以确保当前代码作为脚本运行,并且它不只是由其他文件导入(__name__是一个内置变量,用于说明导入模块的名称,或者"__main__"如果它是直接从命令行运行的,因此不是从任何地方导入的)。

默认情况下,python 脚本将退出 code 0。如果您想使用不同的返回码退出(例如,如果您的脚本遇到错误并且您想优雅地退出,则可以使用内置的exit()(或者sys.exit()如果您想更安全一些 - 请参阅下面的 @cdarke 的出色评论) )。否则,标准做法是让脚本自行结束。


推荐阅读