Python编写电话薄实现增删改查功能


Posted in Python onMay 07, 2016

初学python,写一个小程序练习一下。主要功能就是增删改查的一些功能。主要用到的技术:字典的使用,pickle的使用,io文件操作。代码如下:

import pickle

#studentinfo = {'netboy': '15011038018',\
#                'godboy': '15011235698'}
studentinfo = {}

FUNC_NUM = 5

def write_file(value):
    file = open('student_info.txt', 'wb')
    file.truncate()
    pickle.dump(value, file, True)
    file.close

def read_file():
    global studentinfo
    file = open('student_info.txt', 'rb')
    studentinfo = pickle.load(file)
    file.close()

def search_student():
    global studentinfo
    name = input('please input student\'s name:')
    if name in studentinfo:
        print('name:%s phone:%s' % (name, studentinfo[name]))
    else:
        print('has no this body')

def delete_student():
    global studentinfo
    name = input('please input student\'s name:')
    if name in studentinfo:
        studentinfo.pop(name)
        write_file(studentinfo)
    else:
        print('has no this body')

def add_student():
    global studentinfo
    name = input('please input student\'s name:')
    phone = input('please input phone:')
    studentinfo[name] = phone
    write_file(studentinfo)

def modifiy_student():
    global studentinfo
    name = input('please input student\'s name:')
    if name in studentinfo:
        phone = input('please input student\'s phone:')
        studentinfo[name] = phone
    else:
        print('has no this name')

def show_all():
    global studentinfo
    for key, value in studentinfo.items():
        print('name:' + key + 'phone:' + value)

func = {1 : search_student, \
    2 : delete_student, \
    3 : add_student, \
    4 : modifiy_student, \
    5 : show_all}

def menu():
    print('-----------------------------------------------');
    print('1 search student:')
    print('2 delete student:')
    print('3 add student:')
    print('4 modifiy student:')
    print('5 show all student')
    print('6 exit')
    print('-----------------------------------------------');

def init_data():
    global studentinfo
    file = open('student_info.txt', 'rb')
    studentinfo = pickle.load(file)
    #print(studentinfo)
    file.close()

init_data()
while True:
    menu()
    index = int(input())
    if index == FUNC_NUM + 1:
        exit()
    elif index < 1 or index > FUNC_NUM + 1:
        print('num is between 1-%d' % (FUNC_NUM + 1))
        continue
    #print(index)
    func[index]()

以上就是本文的全部内容,希望对大家学习Python程序设计有所帮助。

Python 相关文章推荐
Python 分析Nginx访问日志并保存到MySQL数据库实例
Mar 13 Python
以Flask为例讲解Python的框架的使用方法
Apr 29 Python
如何利用python查找电脑文件
Apr 27 Python
Python 字符串与二进制串的相互转换示例
Jul 23 Python
Python3之不使用第三方变量,实现交换两个变量的值
Jun 26 Python
python列表每个元素同增同减和列表元素去空格的实例
Jul 20 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
Aug 23 Python
关于Tensorflow使用CPU报错的解决方式
Feb 05 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
Feb 25 Python
Python logging模块进行封装实现原理解析
Aug 07 Python
Django多数据库联用实现方法解析
Nov 12 Python
python中的3种定义类方法
Nov 27 Python
Python的dict字典结构操作方法学习笔记
May 07 #Python
Python 类与元类的深度挖掘 II【经验】
May 06 #Python
Python 类与元类的深度挖掘 I【经验】
May 06 #Python
Python 迭代器工具包【推荐】
May 06 #Python
Python中内建函数的简单用法说明
May 05 #Python
Python使用Paramiko模块编写脚本进行远程服务器操作
May 05 #Python
Python环境下搭建属于自己的pip源的教程
May 05 #Python
You might like
火影忍者:三大瞳力之一的白眼,为什么没有写轮眼那么出色?
2020/03/02 日漫
用PHP和ACCESS写聊天室(十)
2006/10/09 PHP
用PHP实现的随机广告显示代码
2007/06/14 PHP
PHP版 汉字转码的实现详解
2013/06/09 PHP
些很实用且必用的小脚本代码
2006/06/26 Javascript
javascript 动态添加事件代码
2008/11/30 Javascript
JQuery 网站换肤功能实现代码
2009/11/02 Javascript
js实现的复制兼容chrome和IE
2014/04/03 Javascript
优化Node.js Web应用运行速度的10个技巧
2014/09/03 Javascript
JavaScript新增样式规则(推荐)
2016/07/19 Javascript
移动端界面的适配
2017/01/11 Javascript
angular4模块中给标签添加背景图的实现方法
2017/09/15 Javascript
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
2018/03/01 Javascript
使用vue的transition完成滑动过渡的示例代码
2018/06/25 Javascript
Vue2.X 通过AJAX动态更新数据
2018/07/17 Javascript
Vue实现base64编码图片间的切换功能
2019/12/04 Javascript
vue-preview动态获取图片宽高并增加旋转功能的实现
2020/07/29 Javascript
[47:45]Liquid vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[02:23]1个至宝=115个英雄特效 最“绿”至宝拉比克“魔导师密钥”登场
2018/12/29 DOTA
[07:01]DOTA2-DPC中国联赛正赛 Aster vs Magma 3月5日 赛后选手采访
2021/03/11 DOTA
django通过ajax发起请求返回JSON格式数据的方法
2015/06/04 Python
对django xadmin自定义菜单的实例详解
2019/01/03 Python
Python基于requests实现模拟上传文件
2020/04/21 Python
关于keras中keras.layers.merge的用法说明
2020/05/23 Python
Python ellipsis 的用法详解
2020/11/20 Python
在css3中background-clip属性与background-origin属性的用法介绍
2012/11/13 HTML / CSS
Juicy Couture Beauty官方网站:香水和化妆品
2019/03/12 全球购物
波兰购物网站:MALL.PL
2019/05/01 全球购物
电子商务助理求职自荐信
2014/04/10 职场文书
村庄绿化方案
2014/05/07 职场文书
白莲教口号
2014/06/18 职场文书
在职员工证明书
2014/09/19 职场文书
办理护照工作证明
2014/10/10 职场文书
孕妇离婚协议书范本
2014/11/20 职场文书
2015年国庆节活动总结
2015/03/23 职场文书
redis实现的四种常见限流策略
2021/06/18 Redis