|
发表于 2022-11-23 17:50:38
|
显示全部楼层
回帖奖励 +5 鱼币
本帖最后由 阿奇_o 于 2022-11-23 18:02 编辑
题目的意思应该是: 先 所有命令输入完,quit后,再批量处理和输出结果吧,不是单独的输入一条命令就输出一条结果。。
我是这样理解和这样写的:
- class App:
- words = dict(apple='苹果', banana='香蕉') # 初始化,作为测试设包含这两个单词
- def manage_words(self):
- self.cmds = [] # 收集所有命令操作
- while True:
- self.cmds.append(input().strip())
- # print(self.cmds) # 查看每次(每行)输入命令后, 命令清单
- if self.cmds[-1] == 'quit':
- self.show() #
- self.cmds.clear()
- break
- def show(self):
- for cmd in self.cmds[:-1]: # 不要最后一条quit命令(上面已经判断处理了)
- stmt = cmd.split()
- if len(stmt) == 3 and stmt[0] == 'update':
- c, word, zh = stmt
- try:
- self.words[word] = zh
- print(True, '--Update Successfully') # 更新成功
- except:
- print(False, '--更新失败?') # 失败?这会发生吗?
- elif len(stmt) == 2 :
- c, word = stmt
- if c == 'delete':
- try:
- self.words.pop(word)
- print(True, f'--已删除{word}')
- except:
- print(False, '--删除失败(该单词未收录在当前字典里)')
- if c == 'search' :
- print(self.words.get(word, 'Not Found')) # 用dict.get 省去类似上面try的判断 (补充,查了一下:dict.pop 其实也可以这样 ^_)
- else:
- print('Error Input')
- app = App()
- app.manage_words()
复制代码 |
|