布尔值等于-1

时间:2017-01-10 02:50:13

标签: python boolean

一个菜鸟问题可能......我正在阅读some code,并对第28行感到疑惑:

if len(files) == 0 or not files[0].endswith(".dcm") or root.find("sax") == -1:
    continue

那么为什么左侧的布尔运算等于-1(而不是0)?

2 个答案:

答案 0 :(得分:4)

如果找不到提供的文字,

str.find()会返回-1root.find("sax") == -1正在检查该内容。

如果符合以下条件,该行可能会更具可读性:

if not files or files[0].endswith('dcm') or 'sax' not in root:

答案 1 :(得分:1)

根据https://docs.python.org/2/library/stdtypes.html?highlight=str%20find#str.find

str.find(sub [,start [,end]]) 返回在切片s [start:end]中找到substring sub的字符串中的最低索引。可选参数start和end被解释为切片表示法。 如果未找到sub,则返回-1