假设变量 a 为 10, b为 20: and x and y 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 20。 整数中,只有0, 1属于布尔量,其他数字都不是布尔量,也即所有除了0 和1 的数字,其布尔值都为False 以上是教程的说法,那我的疑问就出现了,a and b ,a=false,根据教程 a是false的时候返回的是false,为什么会变成返回了个20?
你的问题:False and 20 应该返回False。如果是指 'false' and 20 那返回20没问题。 ======================== 以下是拓展: ① False、None、0和(list,tuple,dict,set)只要是空的布尔值也是False ② and 和 or 这个涉及短路原则,从左到右每次都判断布尔值是否正确。 --------------------------------------------- and: 两边的条件都要是True,当and左边的条件为False的时候直接短路,返回左边。如果左边是True才会判断右边的条件,【不管右边是True还是False都是返回右边,例如print( 1 and None)打印None】 ------------------------------------------ or: 和前面的and类似,但只要两边有一个真的就返回。当左边为True就直接返回左边,右边不判断。当左边是False才会判断右边,【并且不管是True还是False都是返回右边,例如print( None and 1)打印出1。 ========================