长沙牛耳教育官网
招生电话图

Python:布尔值做加法巧解逻辑推理题

发布日间:2021-01-15   浏览次数:166

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

布尔值做加法巧解逻辑推理题

在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)


0


>>>bool(1)


True


>>>bool(2)


True


>>>bool(0)


False


>>>bool(-1)


True

布尔值做加法巧解逻辑推理题

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


>>>True+True


2


>>>5-True


4


>>>False*100


0


>>>1/False


ZeroDivisionError:divisionbyzero


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


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


A说:不是我。


B说:是C。


C说:是D。


D说:C在胡说。


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

布尔值做加法巧解逻辑推理题

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


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是凶手


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

点击了解牛耳 TEL:400-0731-162
相关新闻
学术报道丨祝贺牛耳教育2015年IT知识技能大赛圆满结束!2017-04-22
学术报道丨在传统文化中感受大爱! ——牛耳教育学院举行健康知识讲座2017-04-22
名师风采丨学生眼里的大神级人物,牛耳的颜值担当——蒋学蹇老师2017-04-22
名师专访丨独具人格魅力的知心大姐姐——牛耳金牌班主任祖家晶老师2017-04-22
相关新闻
美女软件测试工程师成功记2021-03-01
牛耳学子对牛耳教育老师的评价2021-02-28
学Java全栈开发毕业后好找工作吗?2021-02-24
牛耳教育新计划:助力大学生就业,帮助建立良好个人信用2021-02-13