python中、布尔型的逻辑真、其值为_Python:布尔值做加法巧解逻辑推理题

本文介绍了Python中布尔类型与整型的关系,并展示了如何利用布尔值进行逻辑推理,通过一个‘谁是凶手’的案例,演示了如何用Python解决这类问题,揭示了在编程中解决逻辑谜题的有效方法。
摘要由CSDN通过智能技术生成

在Python的官方文档中写到:Python中的布尔值是作为整数的子类实现的。

87db9d0881ca93a3997184306235e1d5.png

在Python语言中布尔类型的True和False与整型的1和0完全一样。

>>>True==1

True

>>>True==2

False

>>>False==0

True

还可以对布尔类型和整型之间进行类型转换。布尔类型转整型,True转换成1,False转换成0。整型转布尔类型,0转换成False,除了0以外的数字都转为True。

>>>int(True)

1

>>>int(False)

>>>bool(1)

True

>>>bool(2)

True

>>>bool(0)

False

>>>bool(-1)

True

d75a42374a27430182baa9676360831d.png

布尔类型也可以做算数运算,在计算的工程中隐式的将布尔类型转为整型。

>>>True+True

2

>>>5-True

4

>>>False*100

>>>1/False

ZeroDivisionError:divisionbyzero

有了以上的基础知识,我们就可以用Python解一道“谁是凶手”的推理题。题目如下:

日本发生谋杀案,警察通过排查确定杀人凶手必为四个嫌疑犯之一,以下为供词:

A说:不是我。

B说:是C。

C说:是D。

D说:C在胡说。

三人说真话,一人说假话。谁是凶手?

a6335660ebb1425b116037728b37e7f8.png

首先我们列出来四个嫌疑人供词的关系表达式。

A说:murder!='A'

B说:murder=='C'

C说:murder=='D'

D说:murder!='D’

然后把真正的凶手代入murder变量,4个供词表达式相加应该等于3。因为题目说“三人说真话,一人说假话”。我们可以用一个循环来测试所有的嫌疑人。

>>>formin['A','B','C','D']:

if(m!='A')+(m=='C')+(m=='D')+(m!='D')==3:

print(f'{m}是凶手')

C是凶手

有了这种通用的枚举方法,我们就可以把烧脑的“谁是凶手”推理题,转化成可以让电脑帮我们解决的简单问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值