-1 python的用法

-1 python的用法,python,Python,我理解使用0和1进行正确和错误的评估,但是有人能在下面向我解释-1的用法吗。s是一个文件名字符串 if s.find(".py")==-1: return False 关于内置函数查找的帮助: 查找(…) S.find(sub[,start[,end]])->int 如果搜索的字符串位于字符串的开头,则可以返回0。来自: 失败时返回-1 换句话说,如果在字符串中找不到子字符串,则返回-1 示例: >>> s = "Hello, world!" >>>

我理解使用0和1进行正确和错误的评估,但是有人能在下面向我解释-1的用法吗。s是一个文件名字符串

if s.find(".py")==-1:
    return False
关于内置函数查找的帮助:

查找(…) S.find(sub[,start[,end]])->int

如果搜索的字符串位于字符串的开头,则可以返回0。

来自:

失败时返回-1

换句话说,如果在字符串中找不到子字符串,则返回-1

示例:

>>> s = "Hello, world!"
>>> s.find("el")
1
请注意,
1
不能解释为布尔值(Python将
True
False
解释为布尔值)。
1
是找到子字符串的起始索引。作为另一个示例,“w”位于字符串中的索引7处:

>>> s.find("w")
7
最后,
foo
不在字符串中,因此尝试
find
会返回
-1

>>> s.find("foo")
-1

这只是一个惯例

来自python文档()

s.find()
方法返回
s
中给定子字符串的索引。如果找到子字符串,它是介于
0
len(str)-1
之间的数字。如果未找到它,则选择
-1
作为返回值,因为它不会与找到它的情况下的任何有效返回值冲突

请注意,这一行最好写为

if ".py" not in s:
    return False
或者——有点不同,但可能是有意的意思——如


在这种情况下,-1用于表示“未找到”。另一种方法是在找不到给定字符串时引发异常。我不清楚为什么决定返回-1而不是引发异常。它可能与性能有关(引发异常的速度稍慢),也可能出于美观考虑(您需要一个
try
块,而不仅仅是检查返回值)。

这在Python文档中-1:这个问题确实没有研究成果。您只需阅读解释器中该函数的文档:
help(str.find)
。RTFM:这显然是一个新的用户帐户。让我们尽量不要惩罚他太多…你可以通过在python解释器中输入
help(s.find)
来获得帮助(假设
s
是你定义的字符串)。因为引发异常需要
s.index()
string.find(s, sub[, start[, end]])
    Return the lowest index in s where the substring sub is found such that sub is wholly contained in s[start:end]. Return -1 on failure. Defaults for start and end and interpretation of negative values is the same as for slices.
if ".py" not in s:
    return False
if not s.endswith(".py"):
    return False