Python string find()方法

2024-09-24 22:27:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了下面的代码来查找变量中的文本。它为外部if条件工作,而不是内部条件(与外部条件相同)。在

name = "Sachin"

if name.find("chin"):
    print("Text Presented")
    print(name)
    if name.find("Sac"):
        print("Sac is prsented")
        print(name)

开/关: 呈现的文本 沙钦

但它适用于以下代码(搜索低位字符):

^{pr2}$

开/关: 呈现的文本 萨钦 已完成Sac 沙钦

有人能告诉我为什么会这样吗?在


Tags: 代码textname文本ifisfind条件
3条回答

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)

Pythonfind(sub)方法返回子字符串子所在的最低索引,否则返回-1。在

  • 在第一段代码中,名称.查找(“Sac”)返回“0”,因为Sachin中“S”的索引是“0”。因此,'if'的主体没有执行。在
  • 在第二段代码中,名称.查找(“sac”)返回“-1”,但是if(-1)为真,因此在执行这段代码中的“if”主体。我希望你现在能理解这个概念。在

实际情况是,name.find("Sac")返回0,它的布尔值为False,因此if-子句不会按您想要的方式触发它们。在

试试这个:

name = "Sachin"

if "chin" in name:
    print("Text present")
    print(name)
    if "Sac" in name:
        print("Sac is present")
        print(name)

注意:0name.find("Sac")返回,因为"Sachin"处的"Sac"从位置0开始(Python使用0-index)。在

除了0-index之外,Python还区分大小写,这意味着name.find("sac")返回{}(这是当您在str中尝试find的内容是而不是时发生的)。但是,bool(-1) = 1所以if最终触发并执行其下面的代码。在

相关问题 更多 >