自学Python:黑与白

作者: 小强聊成长 | 来源:发表于2022-01-15 09:36 被阅读0次

    有A、B、C、D、E这5个人,每个人额头上都贴了一张黑或白的纸。5人对坐,每个人都可以看到其他人额头上纸的颜色。

    A说:“我看见有3人额头上贴的是白纸,1人额头上贴的是黑纸。”

    B说:“我看见其他4人额头上贴的都是黑纸。”

    C说:“我看见1人额头上贴的是白纸,其他3人额头上贴的是黑纸。”

    D说:“我看见4人额头上贴的都是白纸。”

    E什么也没说。

    现在已知额头上贴黑纸的人说的都是谎话,额头上贴白纸的人说的都是实话。

    那么问题来了,这5人谁的额头上贴的是白纸,谁的额头上贴的是黑纸?

    下面直接上代码:

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

    if __name__=="__main__":

        #A、B、C、D、E这5个人,每个人额头上都贴了一张黑或白的纸

        #变量a、b、c、d、e分别代表A、B、C、D、E这5个人额头上贴纸的颜色,

        # 当变量的取值为1时表示该人额头上贴纸为白色,当变量取值为0时表示该人额头上贴纸为黑色

        for a in range(2):      #a、b、c、d、e变量的值要么为0,要么为1,0为黑色,1为白色

            for b in range(2):

                for c in range(2):

                    for d in range(2):

                        for e in range(2):

                            if (a and (b + c + d + e == 3) or ((not a) \

                            and (b + c + d + e != 3))):  #A

                                if(b and (a + c + d + e == 0) or ((not b) \

                            and (a + c + d + e != 0))):  #B

                                    if(c and (a + b + d + e == 1) or ((not c) \

                              and (a + b + d + e != 1))): #C

                                        if (d and (a + b + c + e == 4) or\

                          ((not d) and (a + b + c + e != 4))): #D

                                            a1 = "白" if a==1 else "黑"  #三元表达式

                                            b1 = "白" if b==1 else "黑"

                                            c1 = "白" if c==1 else "黑"

                                            d1 = "白" if d==1 else "黑"

                                            e1 = "白" if e==1 else "黑"

                                            print("A额头上的贴纸是" + a1 + "色的.")

                                            print("B额头上的贴纸是" + b1 + "色的.")

                                            print("C额头上的贴纸是" + c1 + "色的.")

                                            print("D额头上的贴纸是" + d1 + "色的.")

                                            print("E额头上的贴纸是" + e1 + "色的.")

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

    执行结果如下:

    A额头上的贴纸是黑色的.

    B额头上的贴纸是黑色的.

    C额头上的贴纸是白色的.

    D额头上的贴纸是黑色的.

    E额头上的贴纸是白色的.

    ________________END______________

    相关文章

      网友评论

        本文标题:自学Python:黑与白

        本文链接:https://www.haomeiwen.com/subject/ozpgqrtx.html