что нужно ввести, чтобы цикл заработал как надо?

Мне надо чтобы я cмог ввести в случайном порядке "'m1','m9','p1','p9','s1','s9',WEST,SOUTH,NORTH,EAST,WHITE,RED,GREEN", но в каком бы я порядке не вводил, все равно цикл показывает что он не знает такой комбинации.

#тайлы ман
m={'m1','m2','m3','m4','m5','m6','m7','m8','m9'}
#тайлы пин
p={'p1','p2','p3','p4','p5','p6','p7','p8','p9'}
#тайлы соу
s={'s1','s2','s3','s4','s5','s6','s7','s8','s9'}
#ветра
w={'W','S','N','E'}
#драконы
d={'Wh','R','G'}
WEST='W'
SOUTH='S'
NORTH='N'
EAST='E'
WHITE='Wh'
RED='R'
GREEN='G'


#кокуши мусо
k_m= ('m1','m9','p1','p9','s1','s9',WEST,SOUTH,NORTH,EAST,WHITE,RED,GREEN)

#ввод твоей руки
hand=input ('какая у тебя рука?')
while hand==k_m:
    #если рука кокуши
    print('у тебя кокуши')
    break
if hand!=k_m:
    #если рука не кокуши
    print('я не знаю такой комбинации')


Ответы (1 шт):

Автор решения: CrazyElf

Покажу на примере, как нужно парсить ввод и проверять:

test = ('a', 'b', 'c')

def check_input(inp):
    return sorted(map(str.strip, inp.split(','))) == sorted(test)

assert check_input('a,c,  b') == True
assert check_input('a,c, b,d') == False
assert check_input('c, a,b') == True
assert check_input('c, a') == False

Это при условии, что итемы могут повторяться и наличие второго такого же итема (или наоборот недостача второго итема) ломает комбинацию. Если же повторные итемы комбинацию не ломают, то просто нужно написать set вместо обоих sorted.

→ Ссылка