日更成长营自学编程Python

自学Python:谁在说谎

2022-01-13  本文已影响0人  小强聊成长

诚实族和说谎族是来自两个岛屿的不同民族,已知诚实族的人永远说真话,而说谎族的人永远说假话。

一天,一个博士遇到三个人,知道他们可能是来自诚实族或说谎族的人。为了调查这三个人到底来自哪个族,博士分别问了他们问题,

下面是他们的对话:

博士问:“你们是什么族的?”

第一个人回答说:“我们之中有两个来自诚实族。”

第二个人说:“不要胡说,我们三个人中只有一个是来自诚实族的。”

第三个人接着第二个人的话说:“对,确实只有一个是诚实族的。”

那么问题来了。请根据他们的回答判断出他们分别是来自哪个族的?

下面直接上代码:

########################

if __name__ == "__main__":

#分别使用A、B、C代表第一个、第二个和第三个人,说谎对应的变量值为0,诚实对应的变量值为1

    for A in range(2):

        for B in range(2):

            for C in range(2):

                #逻辑判断条件

                if ((A and A + B + C == 2) or (not A and A + B + C != 2))\

                        and ((B and A + B + C == 1) or (not B and A + B + C != 1))\

                        and ((C and A + B + C == 1) or (not C and A + B + C != 1)):

                    a = "诚实族" if A else "说谎族"

                    b = "诚实族" if B else "说谎族"

                    c = "诚实族" if C else "说谎族"

                    print("第一个人来自" + a )

                    print("第二个人来自" + b)

                    print("第三个人来自" + c)

########################

执行结果如下:

第一个人来自说谎族

第二个人来自说谎族

第三个人来自说谎族

________________END______________

上一篇 下一篇

猜你喜欢

热点阅读