2016-10-03 95 views
1

我正在嘗試在給出的字符串中找到一個字母。這是我得到的:Python的'if'語句 - 如果在[字符串] =='字符串' - 不工作?

if i in steps == 'u': 
    y -= pixels_per_move 
elif i in [steps] == 'r': 
    x -= pixels_per_move 

steps是一個由u,d,r,l組成的隨機生成的字符串。 所以它的東西,像「uuurlluddd」

所以我只是尋找「階梯」的那些信,但上面我發現了錯誤

類型錯誤代碼:「在」要求的字符串作爲左操作數,而不是int

我不明白,因爲步驟不是一個整數,我已經嘗試把它放在多個地方,但同樣的錯誤發生。我在這裏做錯了什麼?

+1

'我在步驟=='你' - 你甚至想在那裏做什麼?這完全不是'in'或'=='的工作原理。 – user2357112

+1

爲什麼當錯誤消息正在談論'in'的* left *操作數時,你看'steps'? – user2357112

回答

1

這是什麼意思,i是一個整數。您正在測試i是否在steps這是一個字符串。我認爲你正在嘗試做的最有可能的是獲得stepsith字符在這種情況下,你應該使用if steps[i] == 'u':

1

你混淆for i in stepsif聲明。無論如何,這應該是這個樣子:

for i in steps: 
    if i == "u": #here i isn't a int but a string! 
     y -= pixels_per_move 
    elif i == "r": 
     x -= pixels_per_move 

你可以添加一個print聲明打印x和y(可選)。