在python编程里, print 4> 2 and 1 and 4 输出的是什么? 5
题主你好,
先说结果: 该表达式输出为整数: 4
下面详细的解释一下为什么输出的是:4.
首先我们看 4 > 2 这是一个逻辑表达式, 而逻辑表达式的值为True或False, 显然4 > 2成立, 所以单说 4 > 2这个逻辑表达式返回值为True.因此我们可以将 4 > 2 and 1 and 4变个形式:
True and 1 and 4
而and 和or属于布尔运算符, 也就是说现在完全变成了python中布尔运算了, 因为我们只需要知道python中布尔运算的逻辑即可, 下面我们看一下官方文档中对布尔运算的相关说明:
简单说下上图主要描述的内容:
a. 在布尔运算中, False, None, 0,空字符串 和容器都被解释为false; 其它值都被解释为true.
b. x and y的运算过程是: 先评估x, 如果x被评估为false,则x and y的值就是x; 如果x被评估为true,则x and y的值为y.
c. x or y的运算过程是: 还是先评估x,如果x被评估为true,则x or y的值就是x; 如果x被评估为false,则 x or y的值为y.
------------
知道了上面三条规则(如果只限定题主所提问题, 只需要看a,b两项即可,即知道哪些值被认为是false,哪些值被认为是true;还有布尔运算符and的运算规则),下面我们可以切入题主的问题了:
4 > 2 and 1 and 4 先过算4 > 2这个逻辑表达式,得到逻辑值True,因此上面这个表达式变成了:
True and 1 and 4
根据上面b中所说的and运算规则, 首先计算:
True and 1
我们还用x和y去表示,因为x的值为True,被评估为true,所以该表达式的值就是y,也就是1,到此整个表达式运算下来后,变成了:
1 and 4
再照着上面True and 1的运算逻辑去看, 因为 x的值为1,被评估为true,所以该表达式的值为y,也就是4.
因此 4 > 2 and 1 and 4 运算下来的结果是: 4.
希望可以帮到题主, 欢迎追问.
这个表达式中:4> 2 and 1 and 4,比较符号>的优先级大于逻辑运算符号and,
所以等价于这个: ((4>2) and 1) and 4)
4>2结果为True, 则为:(True and 1) and 4)
根据逻辑运算规则:True and 1 = 1, 1 and 4 = 4
所以最终结果为4