Python编程判断谁是小偷

2023-11-21 21:10
文章标签 python 判断 编程 小偷

本文主要是介绍Python编程判断谁是小偷,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

谁是小偷

‎小区发生盗窃案,有四个人嫌疑最大,警察找来讯问。‌

‎A说:不是我。‌

‎B说:是C。‌

‎C说:是D。‌

‎D说:他冤枉人。‌

‎四人中有一人说了假话,编程分析谁是小偷。

        此题主要考察抽象概括能力、逻辑思维能力和数据处理能力,将题目总结概括为数学问题是抽象概括能力,将数学问题剖析分解为运算公式为逻辑思维能力,将运算公式变换为Python程序为数据处理能力。

        乍一看题目觉得高深莫测,但把题目分析拆解后会有一种“山重水复疑无路,柳暗花明又一村”的感觉。首先,根据题目描述分析可得:1)四人中有一人说了假话,说明A、B、C、D说的话中只有一人说的是假话,其他都是真话,三人的真话之间不能产生矛盾;2)有四个嫌疑人,只有一个小偷,说假话的一定是小偷。这是抽象概括能力。

        四人中三人说的是真话,一人说的是假话,那么他们四个人的话加起来应该是:真+真+真+假,转换为逻辑语言就是True+True+True+False,也相当于1+1+1+0=3,此可作为判断谁是小偷的条件。接下来就是将四个人的话转换为对应的逻辑表达式。‎“A说:不是我”的意思是:“A说A不是小偷”,也就是“小偷不是A”,如果小偷是thief,那么转换为逻辑表达式就相当于“thief!=A”。‎“B说:是C”的意思是“B说小偷是C”,转换为逻辑表达式就相当于“thief==C”。“‎C说:是D”的意思是“C说小偷是D”,转换为逻辑表达式就相当于“thief==D”。“‎D说:他冤枉人”的意思是“D说C冤枉自己,自己不是小偷”,转换为逻辑表达式就相当于“thief!=D”。那么判断谁是小偷的问题就转换为了判断表达式(thief!=A)+(thief==C)+(thief==D)+(thief!=D)==3成立的条件问题,thief的取值范围是A、B、C、D中的一个。这是逻辑思维能力。

       thief的取值范围是A、B、C、D中的一个,如何在Python中为thief规定取值范围,可以联想到ord()和chr()函数,ord('A')=65,ord('B')=66,ord('C')=67,ord('D')=68,chr(65)='A',chr(66)='B',chr(67)='C',chr(68)='D',可以使用range()函数为thief规定取值范围,程序编写如下:

for thief in range(65,69):
    if ((thief!=65)+(thief==67)+(thief==68)+(thief!=68))==3:
        thief=chr(thief+64)
        print("小偷是{}".format(thief))

为了程序简便,也可将thief的取值范围改为range(1,5),修改后程序编写如下:

for thief in range(1,5):
    if ((thief!=1)+(thief==3)+(thief==4)+(thief!=4))==3:
        thief=chr(thief+64)
        print("小偷是{}".format(thief))

‌ 结果都为

 

这篇关于Python编程判断谁是小偷的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/405128

相关文章

Python结合Flask框架构建一个简易的远程控制系统

《Python结合Flask框架构建一个简易的远程控制系统》这篇文章主要为大家详细介绍了如何使用Python与Flask框架构建一个简易的远程控制系统,能够远程执行操作命令(如关机、重启、锁屏等),还... 目录1.概述2.功能使用系统命令执行实时屏幕监控3. BUG修复过程1. Authorization

Python使用DeepSeek进行联网搜索功能详解

《Python使用DeepSeek进行联网搜索功能详解》Python作为一种非常流行的编程语言,结合DeepSeek这一高性能的深度学习工具包,可以方便地处理各种深度学习任务,本文将介绍一下如何使用P... 目录一、环境准备与依赖安装二、DeepSeek简介三、联网搜索与数据集准备四、实践示例:图像分类1.

Python中__new__()方法适应及注意事项详解

《Python中__new__()方法适应及注意事项详解》:本文主要介绍Python中__new__()方法适应及注意事项的相关资料,new()方法是Python中的一个特殊构造方法,用于在创建对... 目录前言基本用法返回值单例模式自定义对象创建注意事项总结前言new() 方法在 python 中是一个

Python批量调整Word文档中的字体、段落间距及格式

《Python批量调整Word文档中的字体、段落间距及格式》这篇文章主要为大家详细介绍了如何使用Python的docx库来批量处理Word文档,包括设置首行缩进、字体、字号、行间距、段落对齐方式等,需... 目录关键代码一级标题设置  正文设置完整代码运行结果最近关于批处理格式的问题我查了很多资料,但是都没

Python依赖库的几种离线安装方法总结

《Python依赖库的几种离线安装方法总结》:本文主要介绍如何在Python中使用pip工具进行依赖库的安装和管理,包括如何导出和导入依赖包列表、如何下载和安装单个或多个库包及其依赖,以及如何指定... 目录前言一、如何copy一个python环境二、如何下载一个包及其依赖并安装三、如何导出requirem

python中列表list切分的实现

《python中列表list切分的实现》列表是Python中最常用的数据结构之一,经常需要对列表进行切分操作,本文主要介绍了python中列表list切分的实现,文中通过示例代码介绍的非常详细,对大家... 目录一、列表切片的基本用法1.1 基本切片操作1.2 切片的负索引1.3 切片的省略二、列表切分的高

基于Python实现一个PDF特殊字体提取工具

《基于Python实现一个PDF特殊字体提取工具》在PDF文档处理场景中,我们常常需要针对特定格式的文本内容进行提取分析,本文介绍的PDF特殊字体提取器是一款基于Python开发的桌面应用程序感兴趣的... 目录一、应用背景与功能概述二、技术架构与核心组件2.1 技术选型2.2 系统架构三、核心功能实现解析

通过Python脚本批量复制并规范命名视频文件

《通过Python脚本批量复制并规范命名视频文件》本文介绍了如何通过Python脚本批量复制并规范命名视频文件,实现自动补齐数字编号、保留原始文件、智能识别有效文件等功能,听过代码示例介绍的非常详细,... 目录一、问题场景:杂乱的视频文件名二、完整解决方案三、关键技术解析1. 智能路径处理2. 精准文件名

基于Python开发PDF转Doc格式小程序

《基于Python开发PDF转Doc格式小程序》这篇文章主要为大家详细介绍了如何基于Python开发PDF转Doc格式小程序,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用python实现PDF转Doc格式小程序以下是一个使用Python实现PDF转DOC格式的GUI程序,采用T

Python使用PIL库将PNG图片转换为ICO图标的示例代码

《Python使用PIL库将PNG图片转换为ICO图标的示例代码》在软件开发和网站设计中,ICO图标是一种常用的图像格式,特别适用于应用程序图标、网页收藏夹图标等场景,本文将介绍如何使用Python的... 目录引言准备工作代码解析实践操作结果展示结语引言在软件开发和网站设计中,ICO图标是一种常用的图像