2

我假设这将很容易回答,但我已经搜索了所有内容,但找不到答案。我正在学习 Python 并尝试运行一些非常简单的代码,但是每当我尝试在缩进块之后执行某些操作时,我都会不断收到语法错误。例如:

x = [1,2,3];
for i in x:
    print(i);
print('finished');

当我运行此代码时,我在 print('finished') 部分收到语法错误。每当我尝试通过在循环或 if 语句之类的块之后取消缩进来运行任何内容时,都会出现此错误。我在 Mac OS X Lion 上的 IDLE 中运行 Python 3.2.3。

更新:似乎这并不像我想象的那么容易,也许我正在尝试做一些毫无意义的工作。我猜shell只在你运行一个缩进的块时运行多行语句,但是当你回到顶层时它会执行语句。因为我通常会处理文件,很可能是在 Django 中,所以最终不会有问题。感谢所有令人惊讶的快速响应。

4

4 回答 4

3

至少python我的 Ubuntu 系统上的交互式解释器需要换行符来结束块:

>>> 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
$ 
于 2012-05-31T21:14:02.260 回答
1

您是否尝试在 IDLE 的默认Python Shell窗口中输入此代码?您最好打开一个 IDLE 编辑器窗口(菜单项File-> New Window)并从那里运行代码(菜单项Run-> Run Module)。在 shell 窗口中缩进会让人感到困惑,而且很难纠正错误。

于 2012-05-31T22:04:55.193 回答
1

取出所有分号。

x = [1,2,3]
for i in x:
    print(i)
print('finished')
于 2012-05-31T21:12:27.853 回答
1

在之后插入换行符print(i)(也在windows上)

x = [1, 2, 3]
for i in x:
    print(i)

print('finished')
于 2012-05-31T21:14:27.930 回答