遍历待选命令,设k=[](考虑双字符串多重匹配),设j=0(考虑单字符串输入匹配后不输出错误),设n=0(考虑双字符串多重匹配情况)。
分两种情况,先判断单个字符串输入,当字符串匹配命令且命令也是单字符串命令时,输出结果设j=1;
再判断两个字符串输入,当两个字符串分别匹配双字符串命令时,结果存入k,n+=1
最后根据k,j,n输出
com=['reset','reset board','board add','board delete','reboot backplane','backplane abort'] result=['reset what','board fault','where to add','no board at all','impossible','install first'] def output_i(str0): k=[] n=0 j=0 for i in range(len(com)): if (' ' not in str0): if str0 in com[i] and (' ' not in com[i]): print(result[i]) j=1 break else: str1=str0.split() com1=com[i].split() if (' ' in com[i]) and (str1[0] in com1[0][:len(str1[0])]) and (str1[1] in com1[1][:len(str1[1])]): k+=[result[i]] n+=1 if n==1: print(k[0]) elif j==1: pass else: print('unknown command') while True: try: output_i(input()) except: break