1

そのため、現在、2 つの文字列を見て、一方の文字列が他方の文字列にあるかどうかをユーザーに通知する関数を定義しようとしています。次のようになります。

def isIn(x, y):

    for x in y:
        if x == y:
            print "True"
            print "x in y"
        else:
            print "False"

    for y in x:
        if x == y:
            print "True"
            print "y in x"
        else:
            print "False"

isIn('5', '1')

for(x) in (y) 関数と関係があると思いますが、間違っているかもしれません。コードは次のようになります。

True
x in y
True 
y in x

これを修正する方法について何か提案はありますか?

4

5 に答える 5

3

for ... inただのプレーンと混同していると思いますin;

def isIn(x,y):

  if x in y:
    print "True"
    print "x in y"
  else:
    print "False"

  if y in x:
    print "True"
    print "y in x"
  else:
    print "False"

isIn('5','1')
于 2013-06-22T17:45:53.243 に答える
0

あなたの問題は、ほぼ確実に、あなたのコードがあなたが思っていることをしないことです:

def isIn(x, y):

    for x in y:
        pass # abbreviated for brevity. Makes no difference here

    for y in x:
        pass #ditto

最初は の各要素にfor x in y順番に割り当てます。最後に、 の最後の値が残ります。次に、次のループで変数 nameを再利用し、前のループの最後の値の各要素に順番にバインドします。xyxyyx

文字列の各要素は長さ1の文字列であり、したがって反復可能であるため、これは例でエラーを引き起こしません(ただし、それ自体と等しい値である単一のオブジェクトを生成するためだけです)。

于 2013-06-22T19:02:36.083 に答える