题目:

员工信息包括,员工编号(ID),姓名(Name),职务(Title),电话(Phone),试开发一个有人机界面的程序能够完成以下功能:
① 能够添加新员工信息
② 列表打印所有员工信息
③ 输入一个员工编号,输出该员工所有信息
提示:本程序用元组设计界面与员工信息表的表头,每个员工信息用列表存储,利用字典组织数据集合

分析:

首先,我们先定义元祖用来存放菜单:

menu_tuple = ("员工信息系统(Python版)", "\t1:添加员工信息", "\t2:列表打印所有员工信息", "\t3:通过员工编号查询员工信息", "\t0:退出系统")

定义元祖存放表头:

emp_tuple = ("ID", "Name", "Title", "Phone")

定义列表存放员工信息:

emp_list = []

定义一个字典(dictionary):

emp_dict = {}

使用while语句让菜单可以循环输入:

while choice != 0:for i in menu_tuple:print ichoice = input("请输入您想使用的功能序号:")if choice == 1:print "添加员工信息"emp_add(emp_list,emp_dict)elif choice == 2:print "列表打印所有员工信息"emp_list_p(emp_list, emp_tuple)elif choice == 3:print "通过员工编号查询员工信息"emp_find(emp_dict, emp_tuple)elif choice == 0:print "退出系统" + "\n" + "您已成功退出系统!"break

最后,在输入的时候别忘了进行异常处理哦!


运行效果如图:

完整代码如下:
Practice.py

# coding: utf-8
from Practice0401_fun import *choice = -1  # 初始化choice
# 定义元祖用来存放菜单
menu_tuple = ("员工信息系统(Python版)", "\t1:添加员工信息", "\t2:列表打印所有员工信息", "\t3:通过员工编号查询员工信息", "\t0:退出系统")
# 定义元祖用来存放表头
emp_tuple = ("ID", "Name", "Title", "Phone")
# 定义列表用来存放员工信息
emp_list = []
# 定义一个字典(dictionary)
emp_dict = {}
# 使用while语句可以循环输入
while choice != 0:for i in menu_tuple:print ichoice = input("请输入您想使用的功能序号:")if choice == 1:print "添加员工信息"emp_add(emp_list,emp_dict)elif choice == 2:print "列表打印所有员工信息"emp_list_p(emp_list, emp_tuple)elif choice == 3:print "通过员工编号查询员工信息"emp_find(emp_dict, emp_tuple)elif choice == 0:print "退出系统" + "\n" + "您已成功退出系统!"break

Practice_fun.py

# coding: utf-8from prettytable import PrettyTabledef emp_add(emp_list, emp_dict):id = input("员工编号:")name = raw_input("姓名:")  # raw_input返回的永远是字符串title = raw_input("职务:")phone = raw_input("职务电话:")emp_list.append([`id`, name, title, phone])for i in emp_list:emp_dict[i[0]] = i[:]print "信息录入成功:员工编号: %s ,姓名: %s ,职务: %s ,职务电话: %s " % (`id`, name, title, phone)return 0def emp_list_p(emp_list, emp_tuple):table = PrettyTable()  # 使用prettytable显示列表table.field_names = (emp_tuple[:])  # 使用元祖的内容作为表头for r in emp_list:table.add_row(r[:])print tabledef emp_find(emp_dict, emp_tuple):try:  # 此处要进行异常处理ID = input("请输入员工编号(ID):")print type(emp_dict.get(`ID`))table = PrettyTable()  # 使用prettytable显示列表table.field_names = (emp_tuple[:])  # 使用元祖的内容作为表头table.add_row(emp_dict.get(`ID`))if emp_dict[`ID`] != "":print "查询到信息,列表如下:"print tableelse:print "未查询到信息!"except IOError, e:print "对不起,员工编号输入错误!请输入字符类型。"finally:print "END."

Python练习题(1)相关推荐

  1. python编程输入标准-Python练习题,,T1.编写程序,输入

    Python练习题,,T1.编写程序,输入 T1.编写程序,输入一个自然数字符串,然后输出各位数字之和. a=input("输入一串数字:") b=0 for i in a: b= ...

  2. Python练习题 001:4个数字求不重复的3位数

    听说做练习是掌握一门编程语言的最佳途径,那就争取先做满100道题吧. ----------------------------------------------------------------- ...

  3. 数组元素前移后移 RUNOOB python练习题 68

    用来练手的python练习题,原题链接: python练习实例68 题干: 有 n 个整数,使其前面各数顺序向后移 m 个位置,最后 m 个数变成最前面的 m 个数 代码如下: import nump ...

  4. Python打印杨辉三角形 RUNOOB python练习题61

    用来练手的python练习题,原题链接: python练习实例61 题干: 打印出杨辉三角形 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 ...

  5. 符号 RUNOOB python练习题 51

    用来练手的python练习题,原题链接: python练习实例51 python中的 & 和 | 使用过程中,变量类型不同,这两个符号的作用也不同. 1. 对于数字变量,&\& ...

  6. python random随机数 RUNOOB python练习题50

    用来练手的python练习题,原题链接: python练习实例50. 该练习题主要包含了random模块随机数的应用,下面给出几个常用的模块内函数. 1. 生成浮点型随机小数 最简单的,就是用rand ...

  7. lambda函数 RUNOOB python练习题49

    用来练手的python练习题,原题链接python练习实例49 该练习题主要是关于lambda函数的使用方法,本文就python中的lambda函数做出一点总结. 1. lambda函数的定义与调用 ...

  8. RUNOOB python练习题47 交换两个变量值

    用来练手的python练习题,原题链接: python练习实例47 题干: 两个变量值互换 在C语言C++中我们要构造一个能交换两个变量值的函数很方便,我们可以使用指针,或者C++中的引用.那么在没有 ...

  9. RUNOOB python练习题44

    用来练手的python练习题,原题链接:python练习实例44 题干: 两个 3 行 3 列的矩阵,实现其对应位置的数据相加,并返回一个新矩阵 使用基本的List类写起来就比较麻烦,需要初始化一个3 ...

  10. RUNOOB python练习题 39 数组排序

    用来练手的python练习题,原题链接: python练习实例39 题干: 有一个已经排好序的数组.现输入一个数,要求按原来的规律将它插入数组中. 这个题目用列表List的sort,append方法非 ...

最新文章

  1. RESTful协议【软件架构】
  2. 计算机制造理论,计算制造
  3. 图解排序算法之谈「选择排序」
  4. git全局ignore
  5. PowerDesigner概念模型详解
  6. 鼓作气学会“一致性哈希”,就靠这 18 张图了
  7. 微软KV Store Faster如何巧妙实现1.6亿ops
  8. 99%程序员不知道的编程必备工具,人工智能助你编程更轻松
  9. python写二分法_Python实现二分法算法实例
  10. 关于serv-u公网访问出现“打开ftp服务器上的文件夹时发生错误。请检查是否有权限访问该文件夹。详细信息:操作超时”的解决方法...
  11. 深入理解JVM(第二版读书笔记)
  12. ASP.NET3.5下的MSChart图表控件使用
  13. 如何:从代码创建 UML 类图(ZZ)
  14. Libusb简介及例子
  15. 项目SOW工作说明书模板
  16. pppd详解_Linux 使用pppd和ppp程序进行3G/4G拨号
  17. 信号能量密度公式_信号时频分析方法汇总
  18. 通过对比3PL和4PL,来了解什么是4PL
  19. 非科班AI小哥火了:他没有ML学位,却拿到DeepMind的offer
  20. 为什么有那么多人相信K线?

热门文章

  1. 《怪诞行为学》40条基本观点
  2. 左手坐标系 + 右手坐标系
  3. R语言-导入数据集并以第一列为行名
  4. K8S原理剖析:Pod、工作负载与服务
  5. 【RT-Thread】UART串口设备驱动★DLT645-2007多功能电能表通信协议★RTThread★
  6. 从来不作死只玩命的10年黑客
  7. 中国历史上农村剩余劳动力的安置政策
  8. PyCharm导入库
  9. 数学柏拉图多面体---定积分(二)
  10. Menu详解(二):利用XML生成菜单和子菜单