|
|
发表于 2016-2-17 17:54:20
|
显示全部楼层
1.
- print ('\n\n\n\t\t祝福大家春节快乐')
- choiceId = [0,1,2,3,4,5]
- coursesDict ={
- '1':'linux', '2':'python', '3':'c', '4':'c++', '5':'c#', '6':'java', '7':'shell', '8':'openstack', '9':'hadoop',
- }
- print ('\n\n\n')
- print ('\t0\t帮助\n')
- print ('\t1\t所有课程ID及课程名称\n')
- print ('\t2\t课程数量\n')
- print ('\t3\t最长的课程名称与其ID\n')
- print ('\t4\t删除最后一个课程及剩余课程数量\n')
- print ('\t5\t退出程序\n\n')
- while True:
- try:
- choice =int(input('\t请输入您的选择:'))
- if choice in choiceId:
- if choice == 0:
- print ('''
- ##########课程管理系统##########
- 输入0,打印出程序帮助信息,即每个操作命令的介绍
- 输入1,打印出程序中存储的所有课程ID及课程名称
- 输入2,打印出课程数量
- 输入3,打印出最长的课程名称与其ID
- 输入4,删除最后一个课程并打印出剩余课程数量
- 输入5,退出程序
- #######################################
- ''' )
- #打印课程
- elif choice == 1:
- print ('\t##########学习课程##########')
- print ('\tID\t课程')
- for key,value in coursesDict.items():
- print ('\t',key,'\t',value)
- print ( '\t##############################')
- #打印课程数量
- elif choice == 2:
- print ('\t##########课程数量##########')
- print ('\t总共发布了%s门课程' % len(coursesDict))
- print ('\t###########################')
- #打印最长的课程
- elif choice == 3:
- longKey, longResult = max(coursesDict.items(), key=lambda x:len(x[1]))
- print ('\t##########名字最长课程##########')
- print ( '\t实名字最长课程是%s %s ' % (longKey,longResult))
- print ( '\t######################################')
- #打印删除最后一个课程及剩余数量
- elif choice == 4:
- coursesDict.pop#此处有问题,请看后面说明
- print ('删除了最后一门课后,还剩余的课程数量:%s' % len(coursesDict) )
- #退出
- elif choice == 5:
- print ('再见。。。。。。')
- break;
- else:
- print('请输入1-5的数字')
-
- except ValueError as Err:
- print(Err)
-
-
复制代码
上面是我修改后的代码,只调了下顺序,如果要这样写建议将中间较长的if判断写成函数。否则比较难看。
2.在运行中发现一个问题:
a.这里调用pop并没有删除字典中的项
b.删除最后一项时不能用pop,因为字典是没有顺序的,也就没有最后一项之说.
c.这里说明一下:删除一门课程有两种方法,
coursesDict.pop('9')#删除的是你这题里的最后一项,本身是按指定的key进行删除。
coursesDict.popitem()#注意,它是随机删除 |
|