建立通讯录python增删改查_Python编程实践之编写电话薄实现增删改查功能

初学Python编程实践,写一个小程序练习一下。主要功能就是增删改查的一些功能。主要用到的技术:字典的使用,pickle的使用,io文件操作。希望对大家学习Python编程实践有所帮助。代码如下: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  FUNC_NUM + 1:

print('num is between 1-%d' % (FUNC_NUM + 1))

continue

#print(index)

func[index]()

以上就是本文的全部内容,希望对大家学习Python程序设计有所帮助。本文由职坐标整理并发布,了解更多内容,请关注职坐标编程语言Python频道!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/563638.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python mysql connection close,Python数据库连接关闭

Using the code below leaves me with an open connection, how do I close?import pyodbcconn pyodbc.connect(DRIVERMySQL ODBC 5.1 driver;SERVERlocalhost;DATABASEspt;UIDwho;PWDtestest)csr conn.cursor()csr.close()del csr解决方案Connections have a close method …

python正向切片_使Python切片正常(正/正向+无无+无负索引+在边界内)

在Python中实现可以用标准Python语法进行切片的类(即负索引、单步执行等)时,有时可以将切片转换为“理智的、向前的切片”,以确定切片的元素。怎样才能以简洁/优雅的形式写出这样一个函数呢?在对于“理智的、向前的切片”,我指的是…

python笔记小白入门_Python 笔记:全网最详细最小白的Class类和实例详解

面向对象最重要的概念就是类(class)和实例(instance),类是抽象,而实例(Instance)则是一个个具体的对象面向对象三大特点:封装、继承和多态class Animal(object):def __init__(self, name):self.name name # 初始化类变量def Dog(self): # 创…

如何安装mysql5.7.2_CentOS 7.2 安装MySQL 5.7

CentOS 7之后的版本yum的默认源中使用MariaDB替代原先MySQL,因此安装方式较为以往有一些改变:下载mysql的源wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm安装yum库yum localinstall -y mysql57-community-release-el7-7.n…

java父类调用子类方法_Java 中父类怎么调用子类的方法?

父类能调用子类的方法吗?答:能。怎么做?● 把子类传递到父类的有参构造中,然后调用。● 使用反射的方式调用,你使用了反射还有谁不能调用的?!● 父类调用子类的静态方法。案例展示:p…

java entity转dto_java 使用反射在dto和entity 实体类之间进行转换

public class Utils {/*** 将dto和entity之间的属性互相转换,dto中属性一般为String等基本类型,* 但是entity中可能有复合主键等复杂类型,需要注意同名问题* param src* param target*/public static Object populate(Object src, Object target) {Method[] srcMethods src.ge…

java 字符串转dom对象_xml类型的字符串转换为Dom对象

我写这篇博客的目的是因为我在这一点转换方面耽搁了快2天时间,真是惭愧呀,dom4j.jar包有自带方法DocumentHelper.parseText(String text)用于将字符串类型的xml转换为Dom对象,从而进行下面的解析,还有一个关键是:产生字…

java nlpir_中科院NLPIR中文分词java版

摘要:为解决中文搜索的问题,最开始使用 版 SCWS ,但是处理人名和地名时,会出现截断人名地名出现错误。开始使用 NLPIR 分词,在分词准确性上效果要比 SCWS 好。本文介绍如何在 系统下 JAVA ,生成可以执行的 …

java怎编写么解析一个类型_DAY3:你必须知道的java虚拟机之类篇——类文件的结构...

马上过年啦,不知道大家今年有没有投资基金股票呢?是赚的盆满钵满还是拍断大腿,可以评论区一起交流交流,秀一秀哈哈,反正我是没来得及上车。暴富西不可能暴富的啦,打工人嘛几能写写文章啦~记得点…

java开发工具排名_排名前16的Java工具类

在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类。以下工具类、方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码。一. org.apache.commons.io.IOUtilscloseQuietly&#xf…

java 线程 事件_Java事件调度线程解释

我最近开始学习和探索Java编程的基础知识。已经编程了一段时间,我只做了后端工作或工作,因此最接近我已经得到用户界面是命令控制台(我知道的尴尬)。我使用Swing,就我可以收集这意味着通过扩展我也使用AWT。我的问题是基于这段代码&#xff1…

java自学笔记_JAVA自学笔记(4)

发现JAVA的有趣Day1 继承不是"继承"1.0 继承的格式public classFU {public voidmethod(){System.out.println("Good night!");}}public class ZI extendsFU {}public classPractice {public static voidmain(String[] args) {ZI zinewZI();zi.method();}}打…

java中isolate时间_Java HikariDataSource.setIdleTimeout方法代码示例

import com.zaxxer.hikari.HikariDataSource; //导入方法依赖的package包/类private HikariDataSource createHikariDataSource(JdbcProperties jdbcProperties) {HikariDataSource hikariDataSource new HikariDataSource();hikariDataSource.setJdbcUrl(jdbcProperties.getJ…

java连接mysql通用方法_jdbc操作数据库通用方法

1 /**2 * 增删改查操作公共类(以oracle数据库为例)3 * 2017-8-29 wuyafei4 *5 */6 public classCrudUtil {7 /**8 * 1.获取数据库连接9 * 2.获取statement,加载sql语句10 * 3.获取resultset11 *12 */13 public static Connection connnull;14 public static Stateme…

java velocity 邮件_邮件集成java mail + 读取邮件模板

项目做异地登录提醒功能,通过java mail发送邮件。读取邮件模板sendMail.vm文件。1.邮件发送import java.io.StringWriter;import java.util.Properties;import javax.mail.Message;import javax.mail.Session;import javax.mail.Transport;import javax.mail.intern…

java分隔符算法_《Java数据结构和算法》栈 分隔符分配

分隔符包括“{“、"["、”(”、“] “、“)“、“}”,每个左分隔符需要右分隔符匹配。同时,在字符串中后出现左分隔符应该比早出现的先匹配。程序从字符串中不断读取字符,每次读取一个字符。若发现是左分隔符…

Java集合迭代器原理图解_Java Iterator接口遍历单列集合迭代器原理详解

这篇文章主要介绍了Java Iterator接口遍历单列集合迭代器原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下Iterator接口概述在程序开发中,经常需要遍历集合中的所有元素。针对这种需求&#x…

mysql1846错误_远程连接MySQL报错ERROR 2003解决办法

转自https://blog.csdn.net/hjwang1/article/details/51669223问题代码代码ERROR 2003 (HY000): Cant connect to MySQL server on 192.168.0.19 (111)ERROR 2003 (HY000): Cant connect to MySQL server on 192.168.0.19 (111) 这个 原因就是Mysql数据库的默认配置文件my.cnf(…

java webview 对象_Android – 将JSON对象从webview javascript传递给java

我在java端有一个带有webview和javascript接口的Activity.我想用Java编写一个可以接受来自webview的json参数的方法.JavascriptInterfacepublic String test(Object data) {Log.d("TEST", "data " data);}在我的webview javascript上我打电话&#xff1a…

php商城的购物车功能,php实现购物车功能(以大苹果购物网为例)

首先是几个简单的登录页面登录用户名:密 码:登录页面写好之后,需要进入处理页面,从数据库中调出用户名和密码:session_start(); //开启session 必须要写到第一行header("Content-type:text/html;charsetutf-8&quo…