您能用python返回表达式的值吗,比如C++;?还是不
我有点困惑,我会感激这样的即时解决方案,这对我来说是非常好的。出于某种原因,此代码您能用python返回表达式的值吗,比如C++;?还是不,python,Python,我有点困惑,我会感激这样的即时解决方案,这对我来说是非常好的。出于某种原因,此代码 def process(self, command): return (command == "Quit" or "quit" or "Q" or "q") 。。。在我的程序中生成与此相同的输出 def process(self, command): return True 什么??但是,此代码的性能与我期望的一样: def process(self, command): return
def process(self, command):
return (command == "Quit" or "quit" or "Q" or "q")
。。。在我的程序中生成与此相同的输出
def process(self, command):
return True
什么??但是,此代码的性能与我期望的一样:
def process(self, command):
return (command == "Quit")
有人能帮忙吗?让我们把这个问题稍微分开一点:
>>> command = 'foo'
>>> command == "Quit" or "quit" or "Q" or "q"
'quit'
这是因为或运算符的工作方式。它查找第一个类真值并返回它。如果没有找到,则返回False
此处的命令解析为:
((((command == "Quit") or "quit") or "Q") or "q")
因此,从左到右进行解析,如果命令
不等于“退出”
,则您有:
(((False or "quit") or "Q") or "q")
但在这里,“quit”
是一个非空字符串,因此python将其视为“True like”,因此返回的是它
现在我们知道了为什么它不起作用,让我们看看如何修复它:
这样做的标准方法是在支持它的某个对象上使用in
操作符:
def process(self, command):
return command in ("Quit","quit","Q","q")
元组很好(它们的性能比列表更好)。但是,如果您要反复使用它,集合将以最快的速度运行,前提是您可以避免反复构建它。让我们把它分开一点:
>>> command = 'foo'
>>> command == "Quit" or "quit" or "Q" or "q"
'quit'
def process(self, command):
return command in ("Quit" , "quit" , "Q" , "q")
这是因为或运算符的工作方式。它查找第一个类真值并返回它。如果没有找到,则返回False
此处的命令解析为:
((((command == "Quit") or "quit") or "Q") or "q")
因此,从左到右进行解析,如果命令
不等于“退出”
,则您有:
(((False or "quit") or "Q") or "q")
但在这里,“quit”
是一个非空字符串,因此python将其视为“True like”,因此返回的是它
现在我们知道了为什么它不起作用,让我们看看如何修复它:
这样做的标准方法是在支持它的某个对象上使用in
操作符:
def process(self, command):
return command in ("Quit","quit","Q","q")
元组很好(它们的性能比列表更好)。但是,如果您要反复使用它,集合将以最快的速度运行,前提是您可以避免反复构建它。您期望的是什么?在C++中你也不能这么做。你需要command==“Q”或command==“Q”…
command在('Quit'、'Quit'、'Q'、'Q')中是command吗
你想做什么?问题名称与描述有什么关系?很明显,您是在return(command==“Quit”)
中返回表达式的值,所以……您真的对此感到困惑吗?这似乎是有条件的,或者更像是精神分裂症。我现在想更改问题的名称,但这似乎是多余的。你期待什么?在C++中你也不能这么做。你需要command==“Q”或command==“Q”…
command在('Quit'、'Quit'、'Q'、'Q')中是command吗
你想做什么?问题名称与描述有什么关系?很明显,您是在return(command==“Quit”)
中返回表达式的值,所以……您真的对此感到困惑吗?这似乎是有条件的,或者更像是精神分裂症。我现在想更改问题的名称,但这似乎是多余的。
def process(self, command):
return command in ("Quit" , "quit" , "Q" , "q")