2015-11-01 93 views
0

我剛看完這段視頻https://www.youtube.com/watch?v=qO4ZN5uZSVg,儘管它教導了2.0版本的Python,但有一些註釋出現在Python 3.0的使用中。然而,在最後,提供了一些挑戰,其中之一就是:Python新手問題

def returnTwo(): 
    return 20,30 
x,y = returnTwo() 
print(x,y) 

每當我試圖看到的結論是什麼,這是會發生什麼吧

def returnTwo(): 
    return 20,30 
(red X in the 3.5 Shell) x,y = returnTwo() 
SyntaxError: invalid syntax. 

我能做?

+3

在輸入'x,y = returnTwo()'之前是否輸入了回車?在python shell中,三個點表示您正在鍵入的內容仍然是函數定義的一部分。在這種情況下,shell可能會將語句'x,y = returnTwo'解釋爲函數定義的一部分。 – helios35

+0

這就是我輸入的內容。 def returnTwo():* enter * return 20,30 * enter *(從行的起始位置開始,不在返回位置20,30)x,y = returnTwo()*輸入*並且我得到這個SyntaxError:無效的語法,而x,y = returnTwo中的x以紅色突出顯示 – VaggelisD

+0

因爲這沒有語法錯誤。你確定**這是你運行的代碼嗎? –

回答

0

python shell允許交互式運行命令。這在快速計算快速檢查一些小代碼時非常有用。

在這種情況下,您想定義一個函數。定義一個函數就是:定義。後來,你實際上調用的功能,並使其運行。這裏的問題是函數(通常)被定義在多行中。這意味着,在完成定義函數之前,實際上您打到時輸入。出於這個原因,你告訴你一個額外的完成了殼進入

enter image description here

和:

enter image description here

,如果你在一個單行定義功能這也適用這就是爲什麼你得到一個SyntaxError:行x, y = returnTwo()應該是在該功能,但爲此,它需要縮進(到return 20, 30級別):

enter image description here

像@jim說,只是嘗試按進入,直到你得到>>>提示了!


請記住three little dots確實也有meaning


這個問題已經在評論由@ helios35和@jim回答!

我只是詳細闡述並作爲答案發布給未來的用戶。