2016-12-10 5 views
0

str.startswithメソッドの動作を理解できません。pythonのスタートアップはどのように機能しますか?

"hello".startswith("")を実行すると、Trueを返します。理想的には空文字列で始まらない。

>>> "hello".startswith("") 
True 

ドキュメントの状態:

戻るTrue文字列が接頭辞で始まる場合、そうでない場合はFalseを返します。 prefixは、検索する接頭辞のタプルでもあります。

どのように機能しますか? s = p + x場合

+4

すべての文字列は空の文字列で始まりますが、 –

+2

@ cricket_007は技術的には任意の数の空文字列を使用します:) – pvg

+1

@pvg:Pythonは空の文字列を幸運にも1回カウントします。 :-) 'str.count()'を試してみると、与えられた入力文字列 's'に' len(s)+ 1'の空文字列があることがわかります。 –

答えて

5

str.startswith()はとしてPythonコードで表現することができます。長さゼロのプレフィックスを渡すと、最初の0文字がテストされることを意味します。空の文字列をカウントまたは交換、

>>> s = 'foobar' 
>>> '' in s 
True 
>>> s.endswith('') 
True 
>>> s.find('') 
0 
>>> s.index('') 
0 
>>> s.count('') 
7 
>>> s.replace('', ' -> ') 
' -> f -> o -> o -> b -> a -> r -> ' 

これらの最後の二つのデモ:長さ0の文字列は、常に長さの任意の他の文字列これもストリングの試験に適用されること0

注に等しいです。空文字列には、入力文字列内のすべての位置で空の文字列を見つけることができます。

2

文字列pは、文字列sの接頭辞であるので、空の文字列は、(それが0、s = 0 + sようなものだ)すべての文字列の接頭辞です。ソース・ストリングの最初len(prefix)文字プレフィックスに等しい場合は、テスト

def startswith(source, prefix): 
    return source[:len(prefix)] == prefix 

関連する問題