Python中and、or、not用法

       最近为了刷Leetcode和学习Deep Learning重温了大一就学过的Python,当时只是囫囵吞枣,只大概学习了语法,回想起那时恍若学海中一介迷路的小书童(虽然现在也是)。现在一眨眼已经大三了,该成熟点了,该会的还是得会,不该会的也应该鼓起勇气学习一下了,试着打破自己的舒适圈才可以进步呀。

        在复习python语法时发现了一个和Java/C++不太一样的点(至少在我的认知中不太一样):

数值也能进行逻辑运算?!而且不是默认转化成0 / 1?!

下面解释一下为什么两个数值进行逻辑运算还是返回数值的原因:

       首先声明:在Python中进行逻辑运算时,非0的数值仍然是当做true,0仍然被看作false来进行处理。

        以下案例不相信的可以自己试一下: https://www.runoob.com/try/runcode.php?filename=test_operator&type=python

a and b 返回 20:

        之所以返回20是因为and进行运算时是需要看两个变量是否都是true才能够决定最后的值。因此在a为true的情况下,b的取值即成为最终的取值。若a、b至少一个为0/false , 则最终结果也为 0 。

a or b 返回 10:

       之所以返回10是因为进行or运算时,如果第一个不是false,则不用看第二个的值即可直接返回第一个的值(或者true),只有当第一个为0时,第二个的值才决定了最终的取值。

写在最后:

       其实Python中的逻辑运算和其他程序语言并没有本质差别,主要的不同就在于最后是返回数值还是布尔值。个人看法(没有经过查证,可能误人子弟):Python之所以返回数值的原因是因为本身语言特性决定:比较自由灵活没有对变量的类型做出严格的限制,从而在输出时并不会把数值强制转换成布尔类型(当然了,not运算除外,因为数值怎么能进行否操作呢?)。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值