簡體   English   中英

學習循環時的語法錯誤

[英]Syntax Error While Learning Loops

我是“如何像計算機科學家一樣思考”的第6章“迭代/循環遍歷”的初學者。

在這本書中,二維表的語法如下:

i=1
while i <= 6:
  print 2*i, '   ', 
  i=i+1 
print

但是,這樣做會導致語法錯誤。 終端給了

File "<stdin>", line 4
    print
        ^
SyntaxError: invalid syntax

我知道第二個打印語句是不必要的,刪除它可以糾正錯誤。 但是,本書后面的一行解釋說第二條打印語句旨在在打印水平表之后創建新的一行。 因此,我認為這可能是拼寫錯誤。 我嘗試了幾種變體,但仍然無法解決。

外殼似乎有問題

執行您以文件形式發布的代碼段時,該代碼段將運行。 您似乎在shell中運行( <stdin>暗示),並且在shell中,相同的代碼段對我也不起作用(在Ubuntu上為python 2.7.2)。

您不會提及文件中是否包含這些內容,或者是否手動輸入。

在后一種情況下,您的終端看起來像

>>> i=1
>>> while i <= 6:
...   print 2*i, '   ',
...   i=i+1
... print
  File "<stdin>", line 4
    print
        ^
SyntaxError: invalid syntax

也就是說,為了終止預期的while子句,您必須輸入一個空行:

>>> i=1
>>> while i <= 6:
...   print 2*i, '   ',
...   i=i+1
...

在這里執行已經發生。

另一個解決方法是在if 1子句中輸入要執行的內容:

>>> i=1
>>> if 1:
...  while i <= 6:
...   print 2*i, '   ',
...   i=i+1
...  print
...
2     4     6     8     10     12
>>>

...我認為這是print語句末尾的串行逗號。 如前所述,如果您使用的是Python 3,它將變成一個函數(例如print(2*i) )。

編輯:稍微靠近一點后,只需除去多余的print會更容易。 沒必要 如果要打印水平表,則在初始打印語句后添加換行符沒有任何問題。

暫無
暫無

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

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