Python练习题(1)
题目:
员工信息包括,员工编号(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)相关推荐
- python编程输入标准-Python练习题,,T1.编写程序,输入
Python练习题,,T1.编写程序,输入 T1.编写程序,输入一个自然数字符串,然后输出各位数字之和. a=input("输入一串数字:") b=0 for i in a: b= ...
- Python练习题 001:4个数字求不重复的3位数
听说做练习是掌握一门编程语言的最佳途径,那就争取先做满100道题吧. ----------------------------------------------------------------- ...
- 数组元素前移后移 RUNOOB python练习题 68
用来练手的python练习题,原题链接: python练习实例68 题干: 有 n 个整数,使其前面各数顺序向后移 m 个位置,最后 m 个数变成最前面的 m 个数 代码如下: import nump ...
- 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 ...
- 符号 RUNOOB python练习题 51
用来练手的python练习题,原题链接: python练习实例51 python中的 & 和 | 使用过程中,变量类型不同,这两个符号的作用也不同. 1. 对于数字变量,&\& ...
- python random随机数 RUNOOB python练习题50
用来练手的python练习题,原题链接: python练习实例50. 该练习题主要包含了random模块随机数的应用,下面给出几个常用的模块内函数. 1. 生成浮点型随机小数 最简单的,就是用rand ...
- lambda函数 RUNOOB python练习题49
用来练手的python练习题,原题链接python练习实例49 该练习题主要是关于lambda函数的使用方法,本文就python中的lambda函数做出一点总结. 1. lambda函数的定义与调用 ...
- RUNOOB python练习题47 交换两个变量值
用来练手的python练习题,原题链接: python练习实例47 题干: 两个变量值互换 在C语言C++中我们要构造一个能交换两个变量值的函数很方便,我们可以使用指针,或者C++中的引用.那么在没有 ...
- RUNOOB python练习题44
用来练手的python练习题,原题链接:python练习实例44 题干: 两个 3 行 3 列的矩阵,实现其对应位置的数据相加,并返回一个新矩阵 使用基本的List类写起来就比较麻烦,需要初始化一个3 ...
- RUNOOB python练习题 39 数组排序
用来练手的python练习题,原题链接: python练习实例39 题干: 有一个已经排好序的数组.现输入一个数,要求按原来的规律将它插入数组中. 这个题目用列表List的sort,append方法非 ...
最新文章
- RESTful协议【软件架构】
- 计算机制造理论,计算制造
- 图解排序算法之谈「选择排序」
- git全局ignore
- PowerDesigner概念模型详解
- 鼓作气学会“一致性哈希”,就靠这 18 张图了
- 微软KV Store Faster如何巧妙实现1.6亿ops
- 99%程序员不知道的编程必备工具,人工智能助你编程更轻松
- python写二分法_Python实现二分法算法实例
- 关于serv-u公网访问出现“打开ftp服务器上的文件夹时发生错误。请检查是否有权限访问该文件夹。详细信息:操作超时”的解决方法...
- 深入理解JVM(第二版读书笔记)
- ASP.NET3.5下的MSChart图表控件使用
- 如何:从代码创建 UML 类图(ZZ)
- Libusb简介及例子
- 项目SOW工作说明书模板
- pppd详解_Linux 使用pppd和ppp程序进行3G/4G拨号
- 信号能量密度公式_信号时频分析方法汇总
- 通过对比3PL和4PL,来了解什么是4PL
- 非科班AI小哥火了:他没有ML学位,却拿到DeepMind的offer
- 为什么有那么多人相信K线?