用Python解答逻辑问题

实在不会,怎么用Python解答逻辑问题?有会的人请教教我,是学校的任务,马上就要交了

img

boxes = {"yellow":False, "green":False, "blue":False, "red":False}

for i in boxes:
    boxes[i] = True
    clues = [
        not boxes["blue"],
        boxes["red"] or boxes["yellow"],
        boxes["blue"],
        boxes["green"]
    ]
    if sum(clues) == 1:
        print(f"Candies are in box {i}.")
        break
    boxes[i] = False
else:
    print("No candies in all boxes.")

全部代码如下,均已测试过:

boxes = {"yellow":False, "green":False, "blue":False, "red":False}
 
for i in boxes:
    boxes[i] = True
    clues = [
        not boxes["blue"],
        boxes["red"] or boxes["yellow"],
        boxes["blue"],
        boxes["green"]
    ]
    if sum(clues) == 1:
        print(f"Candies are in box {i}.")
        break
    boxes[i] = False
else:
    print("No candies in all boxes.")

如下图所示:

img


boxes = {'黄盒': '糖果不在蓝盒子中',
         '绿盒': '糖果在红盒子或在黄盒子中',
         '蓝盒': '糖果在蓝盒子中',
         '红盒': '糖果在绿盒子中'}

# 记录符合条件的盒子数量
true_count = 0

for box in boxes:
    desc = boxes[box]

    if '不在' + box in desc:
        continue

    # 当前盒子信息的真假
    if '在' + box in desc:
        candy_in_box = True
    else:
        candy_in_box = False

    # 检查糖果是否在其他盒子中
    candy_in_other_box = False
    for other_box in boxes:
        if other_box != box and '在' + other_box in desc:
            candy_in_other_box = True
            break

    # 如果糖果只在当前盒子中并且当前盒子上的信息是真实的
    if candy_in_box and not candy_in_other_box:
        true_count += 1
        true_box = box

 # 如果符合条件的盒子数量只有一个
if true_count == 1:
    print("有糖果的盒子是", true_box)
else:
    print("题目假定不存在")

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7676381
  • 你也可以参考下这篇文章:Python不适合做游戏?这几个战争游戏,颠覆你对Python的认知
  • 你还可以看下python参考手册中的 python- 预定义的清理操作
  • 除此之外, 这篇博客: Python——初学者语言,Python是什么??(Python语言及优缺点简介)中的 Python 特点 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 优点:

    • 1.易于学习Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。

    • 2.易于阅读Python代码定义的更清晰。

    • 3.易于维护Python的成功在于它的源代码是相当容易维护的。

    • 4.一个广泛的标准库Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。

    • 5.互动模式互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。

    • 6.可移植基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。

    • 7.可扩展如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。

    • 8.数据库Python提供所有主要的商业数据库的接口。

    • 9.GUI编程Python支持GUI可以创建和移植到许多系统调用。

    • 10.可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。

    相比其他编程语言(比如 Java),Python 代码非常简单,上手非常容易。比如我们要完成某个功能,如果用 Java 需要 100 行代码,但用 Python 可能只需要 20 行代码,这是 Python 具有巨大吸引力的一大特点。

    Python 的两大特色是清晰的语法和可扩展性:

    • Python 的语法非常清晰,它甚至不是一种格式自由的语言。例如,它要求 if 语句的下一行必须向右缩进,否则不能通过编译。
    • Python 的可扩展性体现为它的模块,Python 具有脚本语言中最丰富和强大的类库(这些类库被形象地称为“batteries included ,内置电池”),这些类库覆盖了文件 I/O、GUI、网络编程、数据库访问、文本操作等绝大部分应用场景。


    此外,Python 的社区也很发达,即使一些小众的应用场景,Python 往往也有对应的开源模块来提供解决方案。

    Python 作为一门解释型的语言,它天生具有跨平台的特征,只要为平台提供了相应的 Python 解释器,Python 就可以在该平台上运行。

    缺点:

    1.  速度慢:(Python 程序比 Java、C、C++ 等程序的运行效率都要慢)。目前计算机的硬件速度越来越快,软件工程往往更关注开发过程的效率和可靠性,而不是软件的运行效率。
    2. 源代码加密困难:(不像编译型语言的源程序会被编译成目标程序,Python 直接运行源程序,因此对源代码加密比较困难)。现在软件行业的大势本来就是开源,就像 Java 程序同样很容易反编译,但丝毫不会影响它的流行。
    3.  国内市场较小:(国内以 Python 来做主要开发的,目前只有一些 web2.0 公司)。时间推移,目前很多国内软件公司,尤其是游戏公司,也开始规模使用它。
    4.  中文资料匮乏:(好的 Python 中文资料屈指可数,现在应该变多了)。托社区的福,有几本优秀的教材已经被翻译了,但入门级教材多,高级内容还是只能看英语版。
    5.  构架选择太多:(没有像 C# 这样的官方 .net 构架,也没有像 ruby 由于历史较短,构架开发的相对集中。Ruby on Rails 构架开发中小型web程序天下无敌)。这也从另一个侧面说明,python比较优秀,吸引的人才多,项目也多。

         以上为对Python语言以及该语言特点的简介,个人是这门流行的语言——Python的爱好者,写这篇文章,也希望帮助到,与我一样是Python爱好者,或者说初学者,编程爱好者,程序员对这门语言的一点点了解,一点点帮助,与此同时,感谢大家阅读我的文章,以及评论区对我的支持和鼓励,一同共勉哦!!

  • 您还可以看一下 杨鑫老师的Python机器学习会员数据化运营课程中的 通过运营技能地图使用Python整理用户指标及订单跟踪小节, 巩固相关知识点