2013-10-08 130 views
-2
correct = input("Is this correct audio?") 
if input = "yes":   
stream.stop_stream() 

日食告訴我:預期,但我不明白爲什麼它說如果用Python語句3.3

+2

你忘了正確縮進? –

+0

您的縮進發生了什麼?這在Python中非常重要,因此請確保將其完全正確地粘貼。 –

+1

您還需要在條件中使用'=='而不是'='。 –

回答

2

你這裏有三個問題:

  • 您需要使用==比較值,而不是=。在Python中,=僅適用於賦值語句,不適用於比較表達式。
  • 您需要縮進if行下方的塊。
  • 您需要比較correct而不是inputinput是一個函數,沒有函數等於字符串"yes"。但correct是您從調用該函數獲得的字符串,並且等於字符串"yes"(只要這是用戶鍵入的內容即可)。

您得到的錯誤來自第一個錯誤。

if條件 - 關鍵字if:之間的部分 - 必須是一個表達式。但input = "yes"不是一個表達式;這是一個聲明。這是一個錯誤。但日食正試圖猜測你的真正含義。 input = "yes"可能不是一個表達式,但input本身就是,所以它猜測你的意思是if input:。它猜測錯了,但嘿,試圖點,對吧?

如果您修復了SyntaxError,接下來您將獲得一個IndentationError,這對理解和修復很明顯。

如果解決了這個問題,最後一個更難調試。沒有錯誤,只是比較總是錯誤的,不管你輸入什麼內容。你可以自己開車瘋狂試圖找出是否有換行,你需要剝離或其他一些奇怪的事情你已經注意到一個簡單的錯誤這樣之前被忽視的...

所以:

correct = input("Is this correct audio?") 
if correct == "yes": 
    stream.stop_stream()