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

我被代码海扁署名-非商业-禁演绎
阅读 5:55·字数 1777·发布 
Bilibili 空间
关注 950

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

通过命令行运行 Python 代码

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

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

command参数值所表示的 Python 代码,可以是单行或多行的,其中多行效果需要通过换行符来实现。在不同的命令行应用中,换行符的表述可能不同,比如,在 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 交互模式视为一种命令行的实现,使用他就如同在编写一个 Python 模块,可用于演示,教学或验证某个想法。

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

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

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

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

如何进入 Python 交互模式?

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

如何退出 Python 交互模式?

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

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

重写搜索路径

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

模块搜索路径

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