用Python编程,两个乒乓球队进行比赛问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Python编程,两个乒乓球队进行比赛问题相关的知识,希望对你有一定的参考价值。

两个乒乓球队进行比赛, 各出三人。 甲队为 a,b,c 三人, 乙队为 x,y,z 三人。 已
抽签决定比赛名单。 有人向队员打听比赛的名单。 a 说他不和 x 比, c 说他不和 x,z 比, 请
编程序找出三队赛手的名单。求教 会Python的大神

参考技术A m=['a','b','c']
n=['x','y','z']
t=[]
for i in m:
    for g in n:
        t.append(i)
        t.append(g)
        if  t[0]=='a' and t[1]!='x'  :
            print(t[0],t[1])
        if  t[0]=='b':
            print(t[0],t[1])
        if t[0]=='c'and t[1]!='x'and t[1]!='z':
            print(t[0],t[1])
        t=[]

参考技术B for player1 in 'abc':
    for player2 in 'xyz':
        if (player1 == 'a' and player2 != 'x') or \\
           (player1 == 'c' and player2 not in 'xz'):
            print("----\\n".format(player1, player2))

追问

可是运行出来的结果是 : a----y  a----z  c----y ,您能帮我解决一下吗?

追答for player1 in 'cab':
    for player2 in 'xyz':
        if player1 == 'c' and player2 not in 'xz':
            remain2 = set('xyz') - set(player2)
            print("----\\n".format(player1,player2))
        if player1 == 'a' and player2 != 'x' and player2 in remain2:
            remain2 -= set(player2)
            print("----\\n".format(player1,player2))
        if player1 == 'b' and player2 in remain2:
            print("----\\n".format(player1,player2))

初学python算法100例-案例21 乒乓球比赛名单分配

题目:乒乓球比赛

两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

解法1:ASCII码

程序分析

1、将XYZ转化成对应的ASCII码

2、根据ASCII码值一一按a和c的要求对应匹配

程序代码

for i in range(ord('x'),ord('z') + 1):
    for j in range(ord('x'),ord('z') + 1):
        if i != j:
            for k in range(ord('x'),ord('z') + 1):
                if (i != k) and (j != k):
                    if (i != ord('x')) and (k != ord('x')) and (k != ord('z')):
                        print ('比赛选手对应名单:\\n a -- %s\\n b -- %s\\n c--%s' % (chr(i),chr(j),chr(k)))

运行结果

 

解法2:列表

程序分析

1、将abc分别从XYZ列表中取值

2、然后取出的值按a和c的要求对应匹配

程序代码

for a in ['x','y','z']:
    for b in ['x', 'y', 'z']:
        for c in ['x', 'y', 'z']:
            if(a!=b)and(b!=c)and(c!=a) and (a!='x') and (c!='x') and (c!='z'):
                print('比赛选手对应名单:\\n a 和 %s 比赛\\n b 和 %s 比赛\\n c 和 %s 比赛' %(a,b,c))

运行结果

 

还有更多其他的解法,欢迎一起交流学习

以上是关于用Python编程,两个乒乓球队进行比赛问题的主要内容,如果未能解决你的问题,请参考以下文章

Python乒乓球比赛顺序

两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。 已抽签决定比赛名单。有人向队员打听比赛的名单。 a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。(代码片段

python进阶练习之——比赛对手

python编程语言入门经典100例--22

用python进行对乒乓球的比赛分析,并且将该程序进行封装

c语言:两个乒乓球队进行比赛,各出3人,A说他不和x比,C说他不和x,z比。找出3对赛手的名单