【发布时间】:2018-06-29 06:54:07
【问题描述】:
我正在尝试找出 Python 中的字符串问题。 所以这是来自在线课程Building A Search Engine 并且在测验中有一个问题:
对于任何字符串s = '<any string>',以下哪项始终具有值0?
- (a)
s.find(s) - (b)
s.find('s') - (c)
's'.find('s') - (d)
s.find('') - (e)
s.find(s+'!!!')+1
答案: (a), (c), (d) & (e)
我很确定除了选项 (d) 之外的其他选项。
我认为输出应该是-1,但输出是0。
所以我的推理如下:
s 是之前的预定义问题,但'' 应视为空字符串。所以在一个字符串中找到一个空字符串,为什么不返回不是-1,因为你在任何字符串中都找不到空。
===============================================
好吧,我可以看出我的错误想法了。
空字符串总是被认为是任何其他字符串的子字符串,因此“abc”中的“”将返回
True。
【问题讨论】:
-
空字符串是任意字符串的子集,就像空集是任意集合的子集一样。此外,任何字符串都以空字符串开头。这就是为什么。
-
“你在任何字符串中都找不到空” 当然可以。你可以在任何地方找到它。