在python编程里, print 4> 2 and 1 and 4 输出的是什么?

作者&投稿:辕闹 (若有异议请与网页底部的电邮联系)
python里 print 1 and 2 输出什么~

位操作是 &,
而and 是逻辑操作,联机文档上如下:
The expression x and y first evaluates x; if x is false, its value is returned; otherwise, y is evaluated and the resulting value is returned
print 1 and 2 肯定返回2. 因为1评估为真。所以评估为2

在python中还有or的惯用法。比如 a变量希望是list,可能初始被赋值为None了。那么不使用if的用法就是
t=a or list() 总可以返回一个list

print 函数是根据你的数据类型,判断打印结果

题主你好,

先说结果: 该表达式输出为整数: 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.

希望可以帮到题主, 欢迎追问.



这个等价于python3语句: print( 4> 2 and 1 and 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

这个是 python 2 吧

Python3 里  print 需要括号


输出的是 4