2016-10-03 47 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(可选)。