以下是python中的代码:
>>> print("abcdef".find("cd") == "cd" in "abcdef")
我认为输出应为True,但显示为False。我想知道其背后的逻辑。
答案 0 :(得分:2)
>>> print("abcdef".find("cd") == "cd" in "abcdef")
False
>>> print("abcdef".find("cd"))
2
>>> print("cd" in "abcdef")
True
>>> print(2 == True)
False
>
str.find(sub [,start [,end]])
返回字符串中的最低索引 在切片s [start:end]中找到子字符串sub的位置。可选的 参数start和end被解释为切片表示法。返回 如果未找到sub,则为-1。
仅当您需要知道sub的位置时才应使用find()方法。检查sub是子字符串还是 不,请使用in运算符:
>>> print(("abcdef".find("cd") != -1) == ("cd" in "abcdef"))
True
答案 1 :(得分:0)
> "abcdef".find("cd")
2
> "cd" in "abcdef"
True
> 2 == True
False
“ string” .find()将在找到字符串时返回INDEX。因此,您将得到int'2',因为这是给定字符串中的第3位。
答案 2 :(得分:0)
如下所示,"abcdef".find("cd")
返回cd
在abcdef
中的位置,而"cd" in "abcdef"
返回是否可以在第二个字符串中找到第一个字符串,结果为布尔值。因此比较==
将为假。
(base) C:\Users\nxa13855>python
Python 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> "abcdef".find("cd")
2
>>> "cd" in "abcdef"
True
>>>