定投简书贝自学编程Python

自学Python:谁家孩子跑得最慢

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

假设有张、王、李三家,每家都有3个孩子。

某一天,这三家的9个孩子一起短跑比赛,规定不考虑年龄大小,第一名得9分,第二名得8分,第三名得7分,以此类推。

比赛结束后统计分数发现三家孩子的总分是相同的,同时限定这9个孩子的名次不存在并列的情况,且同一家的孩子不会获得相连的名次。

现已知获得第一名的是李家的孩子,获得第二名的是王家的孩子,要求编程求出获得最后一名的是哪家的孩子。

下面直接上代码:

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

if __name__ == "__main__":

    score = [([0] * 4) for i in range(4)]  #定义列表,用来存储各个孩子的分数

    #score[1]、score[2]和score[3]分别存放张家、王家和李家3个孩子的分数

    #获得第一名的是李家的孩子,获得第二名的是王家的孩子

    #初始化三家孩子的最高分数值

    score[1][1] = 7  #score[1]存放张家3个孩子的分数

    score[2][1] = 8 #score[2]存放王家3个孩子的分数

    score[3][1] = 9  #score[3]存放李家3个孩子的分数

#通过循环得到9个孩子的分数

    for zhang in range(4, 6):

        for wang in range(4, 7):

            for li in range(4, 7):

                #9个孩子名次不存在并列的情况

                if zhang != wang and li != zhang and li != wang \

                        and 15-zhang-score[1][1] != 15-wang-score[2][1] \

                        and 15-zhang-score[1][1] != 15-li-score[3][1] \

                        and 15-wang-score[2][1] != 15-li-score[3][1]:

                    #将结果存入对应的数组元素

                    score[1][2] = zhang

                    score[1][3] = 15-zhang-7

                    score[2][2] = wang

                    score[2][3] = 15-wang-8

                    score[3][2] = li

                    score[3][3] = 15-li-9

    #打印二维数组score,输出各家孩子的分数

    print("各家孩子的分数:")

    for i in range(1, 4):

        for j in range(1, 4):

            print(score[i][j], end=' ')

        print()

    #for循环每一个孩子的分数值,并将最后一名孩子所来自的家庭保存到index中

    for n in range(len(score)):

        #print(n, score[n])

        for m in score[n]:

            if m == 1:

                index = n  #记录最后一名孩子所来自的家庭

    #输出最后一名孩子来自的家庭

    if index == 1:

        print("最后一名孩子来自张家。\n")

    elif index == 2:

        print("最后一名孩子来自王家。\n")

    else:

        print("最后一名孩子来自李家。\n")

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

执行结果如下:

各家孩子的分数:

7 5 3

8 6 1

9 4 2

最后一名孩子来自王家。

________________END______________

上一篇下一篇

猜你喜欢

热点阅读