2016-04-11 5 views
-7

私は、テキストファイル内の文字列を検索するコードを理解しようとしています。どういう意味ですか?それは "偽"のようなものですか? str.find() method documentationからPythonで「負の1に等しい」とは何ですか?

if x.find('string1') != -1:     
    if x.find('string2') == -1 and x.find('string3') == -1:           
     return file 
     break  
+0

あなたのdownvotesは 'RTFM'と叫んでいます。ここでは、https://docs.python.org/2/library/string.htmlを参照しています。「サブストリングのサブが見つかった場所で最も低いインデックスを返します。そのサブは完全にs [start:end]に含まれています**失敗時には-1を返す** " –

+0

@MartinCowie:あなたは間違ったドキュメントを見つけました。問題のコードは 'str.find()'メソッド(これは廃止された関数を置き換えます)を使用しています。動作の説明は正しいかもしれませんが、そのような微妙なことに注意してください! –

答えて

4

リターン-1 サブが見つからない場合。

だから、最初if条件テストstring1xに発見された場合、そうであれば、値-1より大きい値が返されます。 2番目のif条件は、ではない場合、xに存在します(str.find()の両方の呼び出しに対して-1が返されるため)。

それは本当に代わりに、メンバーシップ・テスト(in演算子)を使用してください:

if 'string1' in x and 'string2' not in x and 'string3' not in x: 
    return file 

breakreturnは到達しません後。

+0

ありがとう、非常に有益な答え。 –

関連する問題