2016-04-17 221 views
-1

我目前正在做一個Python項目,我在服務器(套接字)上有一個if語句(elif),它接受來自客戶端的命令。Python:如果語句

我在if語句中遇到了一些問題,如果需要,應該更改「boatIsAt」值。

的代碼是:

#Initial state of the boat 
boatIsAt = "left" 

#Some code.. 

if data == "Q" and chickenIsAt == "left": 
    data = "chicken" 
    chickenIsAt = "boatLeft" 

# Some other elif-statements.. 

elif data == "R" and boatIsAt == "left": 
    data = "Row" 
    boatIsAt = "right" 

elif data == "R" and boatIsAt == "right": 
    data = "Row" 
    boatIsAt = "left"` 

的問題是,當我稱之爲「R」 /行的第一次,它改變了「boatIsAt」到「右」,但是當我嘗試調用「 R「/行,它應該從右到左,它再次向右。

任何幫助將不勝感激。

+3

嗯,我不知道這是否是問題,但這不是python語法。 python中的註釋只有以'#'開頭的單行。如果需要小寫,你可能想清理你的空白字符的可讀性 –

+1

要添加到@湯姆的評論,我甚至沒有看到這裏合法定義的'if'語句。 – Makoto

+0

另外,在if語句之後的經典Python語法中有一個冒號(:)。 –

回答

1

始終爲您

boatIsAt = "left" 

無條件開頭,所以進入你的第一個elifboatIsAt設置爲"right"

0

已解決。

找出我做錯了什麼。 我已經把boatIsAt =「左」一個while循環中:

while 1: 
    boatIsAt = "left" 

這使得它回去離開我每次跑了命令到服務器時。將它放在while語句的外部/上方可以修復它。