我认为这将是非常容易回答,但我已经搜遍了所有,无法找到答案。我正在学习Python并尝试运行一些非常简单的代码,但是在我在缩进块之后尝试执行某些操作时,我仍然会收到语法错误。例如:
x = [1,2,3];
for i in x:
print(i);
print('finished');
当我运行此代码时,我在print('finished')部分出现语法错误。任何时候我尝试通过像循环或if语句之类的块之后的unindenting运行任何东西,我都会收到此错误。我在Mac OS X Lion上运行IDLE中的Python 3.2.3。
更新:似乎这并不像我想象的那么容易,也许我正试图让一些工作毫无意义。我猜shell在运行缩进块时只运行多行语句,但是当你回到顶层时它会执行语句。由于我通常会处理文件,最有可能是在Django中,最终无关紧要。感谢所有惊人的快速反应。
答案 0 :(得分:3)
至少我的Ubuntu系统上的python
交互式解释器需要换行符来结束块:
>>> x = [1,2,3];
>>> for i in x:
... print(i);
... print('finished');
File "<stdin>", line 3
print('finished');
^
SyntaxError: invalid syntax
>>> x = [1,2,3];
>>> for i in x:
... print(i);
...
1
2
3
>>> print('finished');
finished
有趣的是,python
解释器在脚本上运行时不需要空行:
$ cat broken.py
#!/usr/bin/python
x = [1,2,3];
for i in x:
print(i);
print('finished');
$ ./broken.py
1
2
3
finished
$
答案 1 :(得分:1)
取出所有分号。
x = [1,2,3]
for i in x:
print(i)
print('finished')
答案 2 :(得分:1)
在print(i)
之后插入换行符(也在 windows 上)
x = [1, 2, 3]
for i in x:
print(i)
print('finished')
答案 3 :(得分:1)
您是否尝试在IDLE的默认Python Shell
窗口中输入此代码?最好打开IDLE编辑器窗口(菜单项File
- &gt; New Window
)并从那里运行代码(菜单项Run
- &gt; Run Module
)。在shell窗口中缩进会让人感到困惑,并且很难纠正错误。