(Python)为什么每个字符串都包含空字符串?

时间:2017-05-02 02:31:17

标签: python string find

“ABCDE”msut没有空字符。但是当我输入

errorsContainer

Python interprater将返回一个TRUE结果。

为什么?

“ABCDE”中是否有空字符?我不这么认为。

我在使用这些代码时也发现了:

"" in "ABCDE"

返回0而不是-1

任何人请以谢谢的方式告诉我原因。

2 个答案:

答案 0 :(得分:2)

对于具有语言背景的人,其中字符串对象表示为字符数组,这可能会令人惊讶,但如果我们尝试遵循这样的方法,如

string = 'ABCDE'
characters_list = list(string)

然后

'' in characters_list

将是False声明。

空字符串可能来自mathematics,它是string concatenation的二进制操作的中性元素,i。即对于每个字符串a

a + empty_string == empty_string + a == a

其中+是字符串连接符号。然后" 子串"可以定义如下:

  • 对于每个字符串ab我们说a b的子字符串iff存在字符串cd这样

    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_stringd = a

    a == c + empty_string + d
    

    按定义empty_string in a

答案 1 :(得分:1)

这是一种定性的思考方式。请考虑以下内容:

>>> "foo"[0:0]
''

对字符串进行零宽度切片将返回''。因此,如果可以从字符串中获取'' ,则该字符串必须在该字符串中 in ,因此'' in "foo"必须为true。

相关问题