>>>"" in "строка" True
Не могу понять почему такая рекация? Так и должно быть?
При этом
>>>"" in ("строка1") True
>>>"" in ("строка1", "строка2") False
>>>"" in "строка" True
>>>"" in ("строка1") True
>>>"" in ("строка1", "строка2") False
"" in ("строка1")
"" in "строка1"
"" in ("строка1",)
BilboДа, потому что, например, строка “ab” содержит три пустые строки: перед a, между a и b, после b.
Не могу понять почему такая рекация? Так и должно быть?
BilboЭто поиск в кортеже. Операция in применима почти ко всем встроенным типам. В строке операция in ищет строку, а в кортеже операция in ищет элемент.
Но>>>"" in ("строка1", "строка2") False
>>> s = '' >>> if s and s in 'abc': ... True ... else: ... False ... False >>> >>> s = 'b' >>> if s and s in 'abc': ... True ... else: ... False ... True >>>
s = "привет" if "" in s: print ("True")
"" != "п" "" != "р" "" != "и" ... "" != "т"
s.find("")
0
s.find("п")
0
'' in ''
'aaa'.split('a')
Bilboпустота п пустота р пустота и пустота в пустота е пустота т пустотаs = "привет"
BilboЭта пустая строка там есть, но в неё не входит ни один символ.и получил ответs.find("")
0
>>> ''[0] Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: string index out of range >>>
Bilbo
Мне кажется логичным, что если “” in “привет” дает положительный результат, то я должен иметь возможность сослаться (получить индекс) на элемента “” в строке “привет”.
>>> "привет"[0:0] == '' True >>> "привет"[1:1] == '' True ...
p = '' s = "привет" for i,n in enumerate(s): if s[i:i + len(p)] == p: print(True) break
s[0:0+0]=='', s[1:1+0]=='', s[2:2+0]=='' ....