following的输出是什么?

时间:2018-09-06 08:44:37

标签: python-3.x

以下是python中的代码:

>>> print("abcdef".find("cd") == "cd" in "abcdef")

我认为输出应为True,但显示为False。我想知道其背后的逻辑。

3 个答案:

答案 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")返回cdabcdef中的位置,而"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
>>>