看代码注释和结构
import sys commands = [['reset'],['reset','board'],['board','add'],['board','delete'],['reboot','backplane'],['backplane','abort']]#用列表存储存储命令符,也可以不存储,直接dic.keys() dic = {'reset':'reset what','reset board':'board fault','board add':'where to add','board delete':'no board at all','reboot backplane':'impossible','backplane abort':'install first'}#用字典存储命令符与执行操作的对应关系 for line in sys.stdin:#开始循环输入 s = line.split()#对输入的字符进行处理,存储到列表中 n = list(map(len, s))#求输入字符列表中个元素的长度 if len(s)==1 and s[0][:n[0]]==commands[0][0][:n[0]]:#只输入了一个字符串,且与reset匹配 print('reset what') elif len(s)==2:#输入了两个字符串 result = [] for c in commands[1:]:#寻找两个字符串,在命令符中能匹配的命令,并将命令存储到结果列表中 if s[0][:n[0]]==c[0][:n[0]] and s[1][:n[1]]==c[1][:n[1]]: result += c if len(result)==2:#寻找到的命令只有一个(长度为2),输出相对应的执行操作 print(dic[' '.join(result)]) else:#没有寻找到匹配的命令,或匹配的命令不止一个 print('unknown command') else:#输入的字符串个数超过2个 print('unknown command')