Python 是';如果q和r:';单独评估?
这是一个非常简单的问题。是Python 是';如果q和r:';单独评估?,python,Python,这是一个非常简单的问题。是 if q and r: 始终保证与此等效 if q: if r: Python的和和或是短路运算符,因此是的:在您的示例中,如果“q”为false,那么解释器将不计算“r” 编辑-经过一番思考后,我意识到重要的是要注意Python的和和或有点像Javascript&和|。它们不会产生布尔结果。换句话说,计算时的操作数(“q”和“r”)在某种程度上是“内部”转换为布尔值的,但这只是为了看看执行应该如何进行。因此,如果“q”和“r”都是非空字符串,q和r的结果是“
if q and r:
始终保证与此等效
if q:
if r:
Python的
和
和或
是短路运算符,因此是的:在您的示例中,如果“q”为false,那么解释器将不计算“r”
编辑-经过一番思考后,我意识到重要的是要注意Python的
和和或有点像Javascript&
和|
。它们不会产生布尔结果。换句话说,计算时的操作数(“q”和“r”)在某种程度上是“内部”转换为布尔值的,但这只是为了看看执行应该如何进行。因此,如果“q”和“r”都是非空字符串,q和r
的结果是“r”的字符串值,而不是布尔值true
。但是,当在给定的上下文中使用(一个if
语句)时,if
语句本身将把结果转换为布尔值,以便做出自己的控制流决策,因此本例的答案仍然是“yes”:-+1,用于编辑实际上不返回布尔值的布尔运算符。