为什么在python中打印参数不会';不行?

为什么在python中打印参数不会';不行?,python,command-line-arguments,Python,Command Line Arguments,我试图向我的朋友解释sys.argv是如何工作的。我从命令行运行了这个代码段(在cmd和bash上进行了测试) 但令我惊讶的是,这是输出: ['-c', 'bla', 'stas'] 我被难住了——为什么引号“import sys;print(sys.argv)”中的表达式不在参数列表中?第二个地方不应该是这样的吗 ['-c', '"import sys; print(sys.argv)"', 'bla', 'stas'] ?来自: argv[0]是脚本名(这取决于操作系统是否为完整路径名)

我试图向我的朋友解释sys.argv是如何工作的。我从命令行运行了这个代码段(在cmd和bash上进行了测试)

但令我惊讶的是,这是输出:

['-c', 'bla', 'stas']
我被难住了——为什么引号
“import sys;print(sys.argv)”
中的表达式不在参数列表中?第二个地方不应该是这样的吗

['-c', '"import sys; print(sys.argv)"', 'bla', 'stas']

来自:

argv[0]
是脚本名(这取决于操作系统是否为完整路径名)。如果使用解释器的
-c
命令行选项执行命令,
argv[0]
被设置为字符串
'-c'


将命令本身也放在
argv[]
中是错误的,因为它不是脚本的参数。参数只是
bla
stas

Python将
-c
参数视为特例,不将代码字符串放入
sys.argv

['-c', '"import sys; print(sys.argv)"', 'bla', 'stas']