簡體   English   中英

由於縮進,Python IDLE(Mac OS X)中的語法錯誤

[英]Syntax error in Python IDLE (Mac OS X) because of indentation

我以為這將很容易回答,但是我搜索了所有內容,卻找不到答案。 我正在學習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。

更新:似乎這並不像我想的那么容易,也許我正在嘗試使沒有意義的事情起作用。 我猜想外殼程序僅在運行縮進的塊時才運行多行語句,但是回到頂層后,外殼程序將執行該語句。 由於我通常將使用文件,因此很可能最終在Django中將不再重要。 感謝所有令人驚奇的快速響應。

至少我的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
$ 

取出所有分號。

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

print(i)之后插入換行符(也在Windows上

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

print('finished')

您是否要在IDLE的默認Python Shell窗口中輸入此代碼? 最好打開一個IDLE編輯器窗口(菜單項File > New Window ),然后從那里運行代碼(菜單項Run > Run Module )。 在shell窗口中縮進會造成混亂,並且很難糾正錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM