匿名用户
1级
2014-11-07 回答
python的cmd模块为命令行应用提供了强大的支持:
#!/usr/bin/env python
# coding: utf-8
from cmd import Cmd
class Degree(Cmd):
STUDENTS = {}
def do_enter(self, cmdln):
"""Enter a student's name and degree for create or modify;"""
ln = cmdln or raw_input("Enter Student's name and degree: ")
student, degree = ln.split(" ")
self.STUDENTS[student] = int(degree)
def do_delete(self, cmdln):
"""Enter a student's name for delete;"""
student = cmdln or raw_input("Enter Student's name for delete: ")
if student in self.STUDENTS:
del self.STUDENTS[student]
def do_list(self, cmdln):
"""List Students Name-Degree;"""
for student, degree in sorted(self.STUDENTS.items()):
print student, degree
def do_compute(self, cmdln):
"""Compute degrees' averange data;"""
avg = sum(self.STUDENTS.values())/len(self.STUDENTS)
print "Avg: {avg}".format(avg=avg)
def do_quit(self, cmdln):
"""Leave ths application."""
return 1
if __name__ == "__main__":
degreemgr = Degree()
degreemgr.cmdloop()
"""
help
tim@crunchbangtime:~/workspace/baidu$ python qa_cmd.py
(Cmd) ?
Documented commands (type help ):
========================================
compute delete enter help list quit
(Cmd) ? enter
Enter a student's name and degree for create or modify;
(Cmd) help list
List Students Name-Degree;
(Cmd)
(Cmd) enter Tim 93
(Cmd) enter Bruce 38
(Cmd) enter
Enter Student's name and degree: Bruce 88
(Cmd) enter Hans 89
(Cmd) enter Bill 94
(Cmd)
(Cmd) list
Bill 94
Bruce 88
Hans 89
Tim 93
(Cmd) delete Bill
(Cmd) list
Bruce 88
Hans 89
Tim 93
(Cmd) compute
Avg: 90
(Cmd) quit
tim@crunchbangtime:~/workspace/baidu$
"""