Python是一种解释型语言,所以它在我运行时逐行执行代码
import csv,re,sys
print len(sys.argv)
if(len(sys.argv)!=2):
sys.exit(0)
filename= #from command line argument
Run Code Online (Sandbox Code Playgroud)
它甚至不执行一行并给出语法错误.
现在我的问题是代码的最后一行有错误,但Python解释器逐行执行代码行这样的代码到最后一行是正确的,所以应该高达最后一行执行代码,但它给我下面的错误和不打印我在第2行中定义的sys.argv的长度
File "trace-analysis.py", line 45
filename = # from command line argument
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
我没有得到这种行为......请有人解释一下......
python解释器逐行执行代码
这是假的 !!!
Python读取整个文件,将其编译为字节码,然后执行字节码.如果文件中的任何地方都存在语法错误,则不会运行指令,因为解释器将首先尝试解析文件的全部内容并意识到它不是格式良好的程序.
Python不是bash.
只是不清楚我对最后一句话的意思:
$echo 'print("Hello, World!")
> $(
> ' > test.py
$python test.py # NOTE: no Hello, World in the output
File "test.py", line 2
$(
^
SyntaxError: invalid syntax
$echo 'echo "Hello, World!"
$(
' > test.sh
$bash test.sh # NOTE: there's a Hello, World => bash execute the first statement!
Hello, World!
test.sh: riga 2: EOF non atteso durante la ricerca di ")"
test.sh: riga 4: errore di sintassi: EOF non atteso
Run Code Online (Sandbox Code Playgroud)
我的地方是意大利语.该错误只是一个标准错误消息,表示它发现了意外的EOF.
因此,bash 在开始执行之前不会解析整个文件.Quod est demostrandum