Python 为什么每个字符串都包含空字符串?
“ABCDE”没有空字符。但是当我打字的时候Python 为什么每个字符串都包含空字符串?,python,string,Python,String,“ABCDE”没有空字符。但是当我打字的时候 "" in "ABCDE" Python解释器返回True 为什么? “ABCDE”中有空字符吗?我不这么认为 我还发现,当我使用这些代码时: target = '' src = 'ABCDE' src.find(target) 它返回0而不是-1 这是为什么呢?对于那些具有字符串对象表示为字符数组的语言背景的人来说,这可能会令人惊讶,但如果我们尝试采用类似 string = 'ABCDE' characters_list = list(stri
"" in "ABCDE"
Python解释器返回True
为什么?
“ABCDE”中有空字符吗?我不这么认为
我还发现,当我使用这些代码时:
target = ''
src = 'ABCDE'
src.find(target)
它返回0而不是-1
这是为什么呢?对于那些具有字符串对象表示为字符数组的语言背景的人来说,这可能会令人惊讶,但如果我们尝试采用类似
string = 'ABCDE'
characters_list = list(string)
然后
将是False
语句
空字符串可能来自,它是二进制操作的中性元素,即。E对于每个字符串a
a + empty_string == empty_string + a == a
其中,+
是字符串连接符号。那么“子串”可以定义如下:
- 对于每个字符串
,a
我们说b
是a
的子字符串,如果存在字符串b
,c
,则d
b == c + a + d
a
表示为b
的子串,作为a在b
中
利用这些空字符串和子字符串的定义,可以证明它们之间的关系是引理
是任何字符串empty_string
的子字符串:a
a == (definition of empty_string) == empty_string + a == == (definition of empty_string) == empty_string + empty_string + a
然后,如果我们定义a == c + empty_string + d
和c=empty_string
:d=a
根据定义,中的空字符串a == c + empty_string + d
string = 'ABCDE'
characters_list = list(string)
然后
将是False
语句
空字符串可能来自,它是二进制操作的中性元素,即。E对于每个字符串a
a + empty_string == empty_string + a == a
其中,+
是字符串连接符号。那么“子串”可以定义如下:
- 对于每个字符串
,a
我们说b
是a
的子字符串,如果存在字符串b
,c
,则d
b == c + a + d
a
表示为b
的子串,作为a在b
中
利用这些空字符串和子字符串的定义,可以证明它们之间的关系是引理
是任何字符串empty_string
的子字符串:a
a == (definition of empty_string) == empty_string + a == == (definition of empty_string) == empty_string + empty_string + a
然后,如果我们定义a == c + empty_string + d
和c=empty_string
:d=a
根据定义,中的空字符串a == c + empty_string + d
- 这里有一个定性的方式来考虑它。考虑以下事项:
>>> "foo"[0:0]
''
对字符串执行零宽度切片将返回
'
。因此,如果你能从字符串中得到'
,它必须在字符串中,因此“foo”中的''必须为真。这里有一个定性的方法来考虑它。考虑以下事项:
>>> "foo"[0:0]
''
对字符串执行零宽度切片将返回'
。因此,如果您可以从字符串中获取'
,则它必须在字符串中,因此“foo”
中的''必须为真。您所说的“空字符”是什么意思?您认为字符串“
包含多少个字符?”
甚至是中的。
您实际要测试什么?字符串是否包含空格?或者大于0个字符?因为'ABCDE'
可以表示为'+'ABCDE'
,所以第一次出现的空字符串为零position@BingSun,一个“空字符串”是有意义的。“空字符”是没有意义的。事实上,空字符串是任何字符串的子字符串(实际上是多个子字符串)。尝试'foo'[0:0]
,'foo'[1:0]
等。事实上,可以在字符串'ABCDE'
中找到空字符串。这一点也很清楚。我会将其归类为未定义的操作。如果您试图问“能否将'
放入字符串x
”,那么答案是肯定的,因为您可以在任何字符串中的任何点插入'
,而无需更改它,因此您可以在任何字符串中找到它,因此任何字符串都包含'
。你也可以提出完全相反的观点。无法在字符串中表示'
。字符串可以是'
,字符串不能包含'
。一句话:“…”中的“”
根本没有真正的意义,我也不希望从中得到什么特别正确的答案。你说的“空字符”是什么意思?您认为字符串“
包含多少个字符?”
甚至是中的。
您实际要测试什么?字符串是否包含空格?或者大于0个字符?因为'ABCDE'
可以表示为'+'ABCDE'
,所以第一次出现的空字符串为零position@BingSun,一个“空字符串”是有意义的。“空字符”是没有意义的。事实上,空字符串是任何字符串的子字符串(实际上是多个子字符串)。尝试'foo'[0:0]
,'foo'[1:0]
等。事实上,可以在字符串'ABCDE'
中找到空字符串。这一点也很清楚。我会将其归类为未定义的操作。如果您试图问“能否将'
放入字符串x
”,那么答案是肯定的,因为您可以在任何字符串中的任何点插入'
,而无需更改它,因此您可以在任何字符串中找到它,因此任何字符串都包含'
。你也可以提出完全相反的观点。无法在字符串中表示'
。字符串可以是'
,字符串不能包含'
。一句话:“…”中的“”
根本没有真正的意义,我也不希望从中得到什么特别正确的答案。太棒了!我喜欢的是,你不仅仅以不同的表现(字符数组)结束。相反,你做了一个离散的数学证明。谢谢,我想我们应该学会更多地用这种方式回答。太棒了!我喜欢你不只是