首页 新闻 会员 周边 捐助

遇到一道python面试题,求解

0
[已解决问题] 解决于 2019-10-11 10:21

求结果:
v1 = 1 or 3

v2 = 1 and 3

v3 = 0 and 2 and 1
v4 = 0 and 2 or 1
v5 = 0 and 2 or 1 or 4
v6 = 0 or Flase and 1

得到结果分别为:1、3、0、1、1、False

这是什么写法、没有看懂,求解答

CrazyDemo的主页 CrazyDemo | 菜鸟二级 | 园豆:206
提问于:2019-04-26 17:16
< >
分享
最佳答案
1

主要考察的是逻辑与和逻辑或的关系
v1 = 1 or 3
 --> 逻辑或,1和3都是真的,1或3,取决于第一个,即1
v2 = 1 and 3

 --> 逻辑与,1和3都是真的,取决于第二个,即3
v3 = 0 and 2 and 1
 --> 逻辑与,0和2,取0; 0和1,取0,即0
v4 = 0 and 2 or 1
 --> 逻辑与,0和2,取0; 0或1,取1,即1
v5 = 0 and 2 or 1 or 4
 --> 逻辑与,0和2,取0; 0或1,取1;1或4,取1,即1
v6 = 0 or Flase and 1
 --> 逻辑与,0和False,0 为False,可以是False

奖励园豆:5
Harp_Yestar | 菜鸟二级 |园豆:325 | 2019-05-23 10:35
其他回答(3)
-1

很多语言支持这种写法,我没记错的话C和JS也可以这样写,就是0表示false,大于0表示true。不过我觉得最好不要这样写,容易引起混乱。面试官太水才出这题。

会长 | 园豆:12463 (专家六级) | 2019-04-26 17:29
0

or 为真时 返回第一个值
and 所有值为真是返回最后一个,若存在假值返回第一个
0 为False

CrazyDemo | 园豆:206 (菜鸟二级) | 2019-04-26 17:31

支持(0) 反对(0) 三人乐乐 | 园豆:4823 (老鸟四级) | 2019-04-26 17:43
1

是顺序来的。先判断第一个,or为真就返回(and为假就返回),否则就返回第二个。
然后and和or都是逻辑运算符,级别相同,从左到右。
然后数字是0为假,其他为真。
布尔是True和False代表真假。
字符串是空字符('')为假,其他为真。

Masako | 园豆:1893 (小虾三级) | 2019-04-26 18:23

优先级关系:or<and<not

支持(0) 反对(0) hai437 | 园豆:200 (初学一级) | 2021-09-22 17:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册