python中pickle使用学习-字典小程序函数化

简介:

代码还是有bug
效果:
**欢迎使用光荣之路单词小字典**
1、增加单词 
2、查找单词 
3、删除单词 
4、退出单词 
请选择序列号 *
*****
欢迎下次再次使用**
eter:

===============

# -*- coding:utf-8 -*-
import pickle

WordData = {}

'''菜单兰'''
def WordMenu():
    print u'\t\t\t****欢迎使用光荣之路单词小字典***\t\t\t'
    print u'\t\t\t***       1、增加单词        ***\t\t\t'
    print u'\t\t\t***       2、查找单词        ***\t\t\t'
    print u'\t\t\t***       3、删除单词        ***\t\t\t'
    print u'\t\t\t***       4、退出单词        ***\t\t\t'
    print u'\t\t\t***       请选择序列号       ***\t\t\t'
    print u'\t\t\t*******欢迎下次再次使用**********\t\t\t'

def addWord():
    try:
        yesno = raw_input('Please enter yes and no sure whether to increase the words:')
        if yesno == 'no':
            return
        while True:
            word = raw_input("please input add word:")
            word_meaning = raw_input("Please input word meaning:")
            wr = file("wordData.kpl",'rb')
            WordData = pickle.load(wr)
            if WordData.has_key(word):
                print 'The %s word already exists, do not increase again'%word
                wr.close()
                continue
            ww = file("wordData.kpl",'wb')
            WordData[word] = word_meaning
            pickle.dump(WordData,ww)
            print 'Words updated, thank you for maintenance'
            ww.close()
            break
    except:
        print 'Please first initialize storage file system!!!\n'

def delWord():
    try:
        while True:
            word = raw_input("please input your word to delete:")
            fr = file("wordData.kpl",'rb')
            WordData = pickle.load(fr)
            if WordData.has_key(word):
                print 'You want to delete the word is:',WordData[word]
                del WordData[word]
                print 'Deleted successfully!, please use again!!'
                fr.close()
                continue
            else:
                print 'You want to delete the word does not exist\n'
                break
    except:
        print 'Input is wrong\n'

def FindWord():
    try:
      while True:
          word = raw_input("Please enter to find words:")
          fr = file("wordData.kpl",'rb')
          WordData = pickle.load(fr)
          if WordData.has_key(word):
              print 'You find the word is: %s, the meaning is: %s'%(word,WordData[word])
              continue
          elif word == 'exit':
              break
          else:
              print 'word is not find!'
    except:
        print 'Welcome to use the menu'

#初始化
def MenuInitialize():
    WordData = {'liwen': "李玟"}
    fw = open('wordData.kpl', 'wb')
    # Pickle the list using the highest protocol available.
    pickle.dump(WordData, fw, -1)
    print u'初始化成功!!'

def MenuMain():
    try:
        while True:
           WordMenu()
           num = int(raw_input('eter:\n'))
           if num == 1:
               addWord()
               continue
           elif num == 2:
               FindWord()
               continue
           elif num == 3:
               delWord()
               continue
           else:
               print u"欢迎再次使用"
               break
    except:
        print "Your input is wrong"

if __name__ == "__main__":
    MenuMain() #入口
    #MenuInitialize() #字典初始化









本文转自 知止内明 51CTO博客,原文链接:http://blog.51cto.com/357712148/2049159,如需转载请自行联系原作者
目录
相关文章
|
5月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
352 1
|
5月前
|
存储 Java 数据处理
(numpy)Python做数据处理必备框架!(一):认识numpy;从概念层面开始学习ndarray数组:形状、数组转置、数值范围、矩阵...
Numpy是什么? numpy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/0 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy能做什么? numpy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++
493 1
|
5月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
740 1
|
5月前
|
Java 数据处理 索引
(numpy)Python做数据处理必备框架!(二):ndarray切片的使用与运算;常见的ndarray函数:平方根、正余弦、自然对数、指数、幂等运算;统计函数:方差、均值、极差;比较函数...
ndarray切片 索引从0开始 索引/切片类型 描述/用法 基本索引 通过整数索引直接访问元素。 行/列切片 使用冒号:切片语法选择行或列的子集 连续切片 从起始索引到结束索引按步长切片 使用slice函数 通过slice(start,stop,strp)定义切片规则 布尔索引 通过布尔条件筛选满足条件的元素。支持逻辑运算符 &、|。
302 0
|
5月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
247 4
|
移动开发 小程序
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
633 0
|
小程序 前端开发 JavaScript
在线课堂+工具组件小程序uniapp移动端源码
在线课堂+工具组件小程序uniapp移动端源码
353 0
在线课堂+工具组件小程序uniapp移动端源码
|
小程序 前端开发 Java
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
413 1
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
3572 3
|
小程序 API
微信小程序更新提醒uniapp
在小程序开发中,版本更新至关重要。本方案利用 `uni-app` 的 `uni.getUpdateManager()` API 在启动时检测版本更新,提示用户并提供立即更新选项,自动下载更新内容,并在更新完成后重启小程序以应用新版本。适用于微信小程序,确保用户始终使用最新版本。以下是实现步骤: ### 实现步骤 1. **创建更新方法**:在 `App.vue` 中创建 `updateApp` 方法用于检查小程序是否有新版本。 2. **测试**:添加编译模式并选择成功状态进行模拟测试。
655 0
微信小程序更新提醒uniapp

推荐镜像

更多