2016-10-03 4 views
1

私は与えられた文字列で手紙を見つけようとしています。ここに私が持っているものがあります:Python 'if'文 - [string] == 'string'の場合 - 動作していませんか?

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

ステップは、u、d、r、lからなるランダムに生成された文字列です。 だから、だから私はただ「ステップ」にそれらの文字を探しているが、私はエラーに

はTypeError取得しています上記のコードでよ

「uuurlluddd」のような何か:「には」左オペランドとして文字列を必要とします、not int

私はステップがintではないので、私は理解していないと私は複数の場所でそれを周りに置いてみましたが、同じエラーが発生します。私はここで間違って何をしていますか?

+1

私はステップで== 'u'' - あなたは何をしようとしていましたか?これは '' in ''や '==' 'どのように働くのではない。 – user2357112

+1

なぜ、エラーメッセージが 'in'の* left *オペランドについて話していたときに' steps'を見ましたか? – user2357112

答えて

1

iはintです。 iが文字列のstepsにあるかどうかをテストしています。私はあなたがやろうとしていると思うほとんどがそうな事はあなたがあなたがif文でfor i in stepsを混同if steps[i] == 'u':

1

を使用する必要があり、その場合にはstepsith文字を取得することです。

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 

あなたは、xとy(別売)を印刷するprintステートメントを追加することができます。とにかく、それは次のようになります。

関連する問題