URLhttps://learnscript.net/zh/python/command-line/run-python-code-from-command-line/
    复制链接转到说明  示例

    如何通过命令行运行 Python 代码

    我被代码海扁署名-非商业-禁演绎
    阅读 5:52·字数 1763·更新 

    本节讲述的是通过命令行运行 Python 代码,至于如何运行文件形式的 Python 脚本,你可以查看如何通过命令行运行 Python 脚本文件,模块,包一节。

    通过命令行运行 Python 代码

    在命令行中输入pythonpython3(或者指向 Python 的一些别名)并使用-c参数,然后给出需要运行的 Python 代码,按下Enter后这些代码将被执行。

    Windows
    python -c <command>
    UNIX/Linux/macOS
    python3 -c <command>
    command 参数值

    command参数值所表示的代码,可以是单行或多行的,其中多行效果需要通过换行符来实现。在不同的命令行应用中,换行符的表述可能不同,比如,在 PowerShell 中换行符可表述为`n

    command中的特殊字符需要进行转义,比如,双引号中的双引号,单引号中的单引号,这需要根据具体的命令行应用来确定。当然,对于 Python 字符串包含的特殊字符,依然可以使用\进行转义,如果\本身是命令行的特殊字符,则应视具体情况决定是否首先转义\

    另外,单行代码可以通过;组合多条语句,多行代码中每一行开头的缩进与py文件的缩进含义相同。

    转义特殊字符

    想要了解命令行中的转义,你可以查看编程指南如何在命令行中转义特殊字符一节。

    PowerShell 中,我们简单的使用代码输出一段消息。

    # PowerShell
    python -c "print('通过命令行执行代码!')"
    通过命令行执行代码!

    依然是在 PowerShell 中,下面的代码将变量ab的赋值语句,通过;合并为一行,而if语句则通过`n被划分为多行,print函数前面的空白不能省略,否则会出现语法错误。

    # PowerShell
    python -c "a = int(input('A = '));b = int(input('B = '))`nif a > b:`n print('A 大于 B')`nelse: print('A 小于 B')"
    A = 1
    B = 3
    A 小于 B

    如果希望在 PowerShell 的双引号中使用双引号,那么需要使用`"进行转义,正如下面所示的第一行代码。至于代码的另一行,虽然中间的两个单引号不需要针对 PowerShell 转义,但他们处于 Python 的单引号字符串中,因此使用 Python 转义字符\进行转义。

    # PowerShell
    python -c "print('杰瑞说:`"转义 PowerShell 双引号中的双引号`"')"
    杰瑞说:"转义 PowerShell 双引号中的双引号"
    python -c "print('杰瑞说:\'转义 Python 单引号中的单引号\'')"
    杰瑞说:'转义 Python 单引号中的单引号'

    在 UNIX/Linux/macOS 系统中,Shell 程序的转义字符一般是\,在书写\\t后,\\t会被命令行转义为\t,而\t将被 Python 转义为制表符。在书写\\\\后,\\\\会被命令行转义为\\,而\\将被 Python 转义为\

    # UNIX/Linux/macOS
    python3 -c "print('杰瑞说:\\t转义 Python 转义字符\\\\')"
    杰瑞说: 转义 Python 转义字符\

    在交互模式中运行 Python 代码

    什么是 Python 交互模式?

    你可以将交互模式视为一种命令行的实现,使用他就如同在编写一个 Python 模块,可用于演示,教学或验证某个想法。

    在进入交互模式后,你可以简单的输入代码,然后按下Enter来执行他,如果存在可供显示的结果,那么这些结果将展现在交互模式中。比如,某个变量或函数的返回值。

    当输入的代码没有完整到足以正常执行时,交互模式会要求补充剩余的代码,你可以在未输入任何字符的情况下,再次按下Enter来执行之前所有的输入。如果希望书写一个空行而不是结束输入,那么在按下Enter之前需要书写至少一个空白字符(比如,一个空格)。

    下面,我们使用input函数要求用户输入姓名,并通过if语句判断输入是否为空。

    name = input('请输入姓名:')
    请输入姓名:…Enter
    if not name:
    ... print('没有姓名?!')
    ...…Enter
    没有姓名?!

    如何进入 Python 交互模式?

    对于 Windows 操作系统,在命令行输入python后即可进入交互模式,对于 UNIX/Linux/macOS 系统,则需要输入python3。当然,除了pythonpython3,你也可以使用其他指向了 Python 的别名。

    如何退出 Python 交互模式?

    对于 Windows 系统,在交互模式中先后按下Ctrl+ZEnter,将退出交互模式,对于 UNIX/Linux/macOS 系统,只需按下Ctrl+D即可。

    如果site模块在 Python 启动时被导入,那么,在交互模式中输入exit()quit()同样可以退出交互模式。事实上,导入site模块是默认的,除非你使用_pth文件重写了模块搜索路径,并且未在_pth中书写有效(不是注释)的import site

    重写搜索路径

    要获取关于_pth文件的信息,你可以查看Python 指南如何使用 _pth 文件重写 Python 模块搜索路径一节。

    模块搜索路径

    想要了解 Python 的模块搜索路径,你可以查看Python 指南Python 模块搜索路径介绍,模块搜索路径中的目录有哪些一节。