傢伙,我正在學習Python的最近,我有一個問題,當我寫一些簡單的代碼在Python Shell(在Linux終端命令),並在文件中:Python代碼的作用在不同的文件和終端
在Python Shell中:
>>> def firstn(n):
... num, nums = 0, []
... while num < n:
... nums.append(nums)
... num += 1
... return nums
... sum_of_first_n = sum(firstn(1000000))
File "<stdin>", Line7
sum_of_firstn_n = sum(firstn(1000000))
^
SyntaxError: invalid syntax
如果打印(SUM(firstn(1000000))),打印將是一個SyntaxError太
但是,當我把代碼到一個文件,並執行它,它是完全好的,沒有SyntaxError,我不知道爲什麼。有沒有人可以解釋這一點? PS:代碼是從https://wiki.python.org/moin/Generators
謝謝,第一行「在交互模式下,放空行結束塊。」對於我來說非常有用,我應該在shell中的不同部分中定義每個塊。但是其餘的答案會讓人感到困惑,我沒有像你的TypeError(我正在使用Python 3.2), – CodyChan
@codychan ,看到下面這行:'nums.append(nums)'。這將'nums'添加到'nums'本身! – falsetru
@codychan我會推薦* always *在函數定義之後添加一個空行。它在[PEP8](http://www.python.org/dev/peps/pep-0008/)的某處說你應該這樣做,無論如何,它會讓你更容易複製並粘貼到你的交互式python中會話。 – SethMMorton