2024-04-19 08:05:27 发布
网友
假设我在解释器中键入以下代码:
var1 = 'zuuzuu'
现在假设我键入:
var1.find('a')
解释器返回-1。我能理解,因为子串还没有找到。但请帮助我理解这一点:
var1.find('a' or 'z') #case 1
返回-1
但是
var1.find('a' and 'z') #case 2
返回0
根据我脑子里的逻辑,解释器应该为案例2返回-1,因为子字符串“a”和“z”不在字符串中。在案例1中,应返回0,因为“z”是一个子字符串。
谢谢
表达式'a' or 'z'总是产生'a'。表达式'a' and 'z'总是产生'z'。它不是某种用于将查询放入容器的DSL,而是一个简单的布尔表达式(并且find是用它的结果调用的)。如果你想说“字符串中有‘a’或‘z’”,你需要这样做
'a' or 'z'
'a'
'a' and 'z'
'z'
find
var1.find('a') != -1 or var.find('z') != -1
对于第二个(字符串中的“a”和“z”):
var1.find('a') != -1 and var.find('z') != -1
这是因为find方法实际上不支持or和and,它只支持查询字符串。
or
and
那么,到底发生了什么?好吧,结果是or和and是可以在字符串上执行的运算符。
'a' and 'z' --> 'z' 'a' or 'z' --> 'a'
所以你得到了它,你基本上只是像平常一样搜索'a'和'z'。
表达式
'a' or 'z'
总是产生'a'
。表达式'a' and 'z'
总是产生'z'
。它不是某种用于将查询放入容器的DSL,而是一个简单的布尔表达式(并且find
是用它的结果调用的)。如果你想说“字符串中有‘a’或‘z’”,你需要这样做对于第二个(字符串中的“a”和“z”):
这是因为
find
方法实际上不支持or
和and
,它只支持查询字符串。那么,到底发生了什么?好吧,结果是
or
和and
是可以在字符串上执行的运算符。所以你得到了它,你基本上只是像平常一样搜索
'a'
和'z'
。相关问题 更多 >
编程相关推荐