2017-05-02 7 views
1

"ABCDE" msutには空白文字がありません。しかし、私が入力するとき(Python)なぜ "ABCDE"の ''がTRUEを返しますか?

"" in "ABCDE" 

Python interpraterはTRUEの結果を返します。

なぜですか?

"ABCDE"に空白がありますか?私はそうは思わない。

そして、私はこれらのコードを使用するとき、私はも見:

target = '' 
src = 'ABCDE' 
src.find(target) 

0を返す代わりに-1

いずれか私に感謝してその理由を教えてください。文字列オブジェクトは、それは驚くべきことであり、文字の配列として表されますが、我々は

string = 'ABCDE' 
characters_list = list(string) 

のような、そのようなアプローチに従うことをしようとした場合、その後

'' in characters_list 

Falseになります言語の背景を持つ人々のために

+2

「空の文字」とはどういう意味ですか?文字列 '' 'に何文字が含まれていると思いますか? – Chris

+2

'' ''は' '' '' ...でも実際にテストしようとしていますか?あなたの文字列にスペースが含まれているかどうか?または0文字より長いですか? – deceze

+0

@Chris文字列 "ABCDE"には ""が含まれていない必要があります –

答えて

2

ステートメント。

おそらくmathematicsからの空文字列は、string concatenationという2進演算の中立要素です。 e。 +は、文字列の連結のシンボルであるa

a + empty_string == empty_string + a == a 

すべての文字列のため。次のように続いて "substringing" に定義することができます。すべての文字列aため

  • b我々はb IFFのサブストリングの文字列cを、存在さaを言うd

    b == c + a + d 
    
こと

と表記しましょうaはsubsですbの語義はa in bとなります。関係をsustringing 空の文字列のこれらの定義で

は補題

  • empty_string証明することができる任意の文字列aのサブです:私たちはc = empty_stringを定義した場合、その後

    a == (definition of empty_string) == empty_string + a == 
    == (definition of empty_string) == empty_string + empty_string + a 
    

    d = a

    a == c + empty_string + d 
    

    および定義によりempty_string in aである。

関連する問題