“ABCDE”msut没有空字符。但是当我输入
errorsContainer
Python interprater将返回一个TRUE结果。
为什么?
“ABCDE”中是否有空字符?我不这么认为。
我在使用这些代码时也发现了:
"" in "ABCDE"
返回0而不是-1
任何人请以谢谢的方式告诉我原因。
答案 0 :(得分:2)
对于具有语言背景的人,其中字符串对象表示为字符数组,这可能会令人惊讶,但如果我们尝试遵循这样的方法,如
string = 'ABCDE'
characters_list = list(string)
然后
'' in characters_list
将是False
声明。
空字符串可能来自mathematics,它是string concatenation的二进制操作的中性元素,i。即对于每个字符串a
a + empty_string == empty_string + a == a
其中+
是字符串连接符号。然后" 子串"可以定义如下:
对于每个字符串a
,b
我们说a
是 b
的子字符串iff存在字符串c
,d
这样
b == c + a + d
我们将a
表示为 b
的子字符串为a in b
。
通过这些空字符串和 sustringing 的定义关系可以证明引理
empty_string
是任何字符串a
的子字符串:
a == (definition of empty_string) == empty_string + a ==
== (definition of empty_string) == empty_string + empty_string + a
然后我们定义c = empty_string
和d = a
:
a == c + empty_string + d
按定义empty_string in a
。
答案 1 :(得分:1)
这是一种定性的思考方式。请考虑以下内容:
>>> "foo"[0:0]
''
对字符串进行零宽度切片将返回''
。因此,如果可以从字符串中获取''
,则该字符串必须在该字符串中 in ,因此'' in "foo"
必须为true。