Python字符串find()方法
我已经写了下面的代码来查找变量中的文本。它是为外部条件而不是内部条件(与外部条件相同)工作。Python字符串find()方法
name = "Sachin"
if name.find("chin"):
print("Text Presented")
print(name)
if name.find("Sac"):
print("Sac is prsented")
print(name)
O/P: 文本提交 萨钦
但它会为下面的代码(寻找下档字符)工作:
name = "Sachin"
if name.find("chin"):
print("Text Presented")
print(name)
if name.find("sac"):
print("Sac is prsented")
print(name)
O/P: 文本提交 萨钦 Sac is ptedted Sachin
有人可以告诉我为什么发生这种情况?
正在发生的事情是,name.find("Sac")
回报0
其中有False
一个布尔值,因此if
-clause不会触发他们你想要的方式。
尝试此代替:
name = "Sachin"
if "chin" in name:
print("Text present")
print(name)
if "Sac" in name:
print("Sac is present")
print(name)
注:0
由name.find("Sac")
因为"Sac"
在"Sachin"
开始于位置0(Python使用0索引)返回。
除了0指数,Python也区分大小写的意义name.find("sac")
回报-1
(这是当你试图find
在str
ING是不那里会发生什么)。但是,bool(-1) = 1
因此if
确实会触发并且其下面的代码执行。
name.find("chin")
将返回值2
,其值为python中的布尔值True
。
name.find("Sac")
将返回值0
,它在python中的布尔值为False
。
name.find("sac")
将返回值-1
,它的Python中的布尔值为True
。
使用in
运营商,我认为这会给你你想要的功能。 见下图:
name = "Sachin"
if "chin" in name:
print("Text Presented")
print(name)
if "Sac" in name:
print("Sac is prsented")
print(name)
非常感谢你:) – jaibalaji
的Python find(sub)方法返回在子子被发现,返回最低索引 -1,如果它不是。
- 在第一段代码中,由于Sachin中“S”的索引为“0”,所以name.find(“Sac”)返回“0”。因此,'if'的主体没有执行。
- 在第二段代码中,name.find(“sac”)返回“-1”,但是如果(-1)为真,那么这段代码中的'if'正文会被执行。我希望你现在能得到这个概念。
您可以只导入re
import re
name = "Sachin"
if re.search("chin",name):
print("Text Presented")
print(name)
if re.search("Sac",name):
print("Sac is prsented")
print(name)
的代码两片相同使用正则表达式在字符串搜索。 –
这与'pip'或'pycharm'有什么关系? –
更新了问题。 – jaibalaji