我也不知道有什么问题,反正编辑器说21和46行代码有错误


import random
your_num={1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0}
my_num={1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0}
print('这是一款卡牌游戏\n游戏规则:每轮游戏开始,你将会获得12张随机的数字卡牌,到你出牌时,只能出一张比对方数字大的牌,否则就算失败!!!')
for i in range(12):
    b=random.randint(1,10)
    your_num[b]+=1
for i in range(12):
    b=random.randint(1,10)
    my_num[b]+=1
#print(your_num)
print('你的卡牌:'+str(my_num))
a=int(input('请输入你要出的卡牌:'))
if my_num[a] > 0:
    my_num[a]-=1
else:
    print('输入无效!!!')
b=1
def your1():
    while True:
        b+=1
        if b>a:
            if your_num[b] > 0:
                your_num[b]-=1
                print('对方出了数字为'+str(b)+'的卡牌')
                break
            else:
                continue
        elif b>10:
            print('你胜利了!!!')
            exit()
        else:
            continue
def my1():
    print('你的卡牌:'+str(my_num))
    a=input('请输入你要出的卡牌:')
    if a>b:
        if my_num[a] > 0:
            my_num[a]-=1
        else:
            print('输入无效!!!')
    else:
        print('你失败了!!!')
        exit()
while True:
    your1()
    my1()

yours()函数里的b没有定义,哪里来的?全局变量吗?如果是全局变量,就用global声明一下,如果不是就需要传参进来,具体要看你要实现的逻辑。