鱼C论坛

 找回密码
 立即注册
查看: 3556|回复: 7

[作品展示] python自制简单字典

[复制链接]
发表于 2016-9-18 23:44:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Estein 于 2016-9-18 23:46 编辑
  1. # Mydictionary
  2. # Versin:2.0
  3. # Author:Estein
  4. # Date:2016/9/18
  5. import easygui as g
  6. import pickle
  7. import sys

  8. def load_data(filename):
  9.     f = open(filename,'rb')
  10.     Mydict = pickle.load(f)
  11.     f.close()
  12.     return Mydict

  13. def save_data(filename,Mydict):
  14.     f = open(filename,'wb')
  15.     pickle.dump(Mydict,f)
  16.     f.close()

  17.    
  18. def welcome():
  19.     msg = '欢迎使用My Dictionary!'
  20.     title = 'Dictionary'
  21.     ok_button = '进入'
  22.     flag = g.msgbox(msg,title,ok_button)
  23.     return flag

  24. def menu():
  25.     msg = '选择待执行指令:'
  26.     title = '菜单'
  27.     Button1 = '显示字典'
  28.     Button2 = '添加单词'
  29.     Button3 = '删除单词'
  30.     Button4 = '查询单词'
  31.     Button5 = '退出'
  32.     choice = g.buttonbox(msg,title,choices = (Button1,Button2,Button3,Button4,Button5))
  33.     return choice

  34. def display(Mydict):
  35.     msg = '字典内容如下:'
  36.     title = '字典显示...'
  37.     text = ''
  38.     for each in Mydict:
  39.         text += each + ' : ' + Mydict[each] + '\n'
  40.     g.textbox(msg,title,text)
  41.         

  42. def add_word(Mydict,values = ()):
  43.     msg = '输入想添加入字典的单词及释义:'
  44.     title = '正在添加单词...'
  45.     fields = ('单词','释义')
  46.     vals = g.multenterbox(msg,title,fields,values)
  47.     try:
  48.         if vals[0] == '' or vals[1] == '':
  49.             add_word(Mydict,values = [vals[0],vals[1]])
  50.         else:
  51.             Mydict[vals[0]] = vals[1]
  52.             g.msgbox('单词%s已成功加入字典!' % vals[0])
  53.     except TypeError:
  54.         pass
  55.    
  56.     return Mydict

  57. def del_word(Mydict):
  58.     msg = '输入想要删除的单词:'
  59.     title = '正在删除单词...'
  60.     word = g.enterbox(msg,title)
  61.     if word == None:
  62.         pass
  63.     elif word == '':
  64.         del_word(Mydict)
  65.     elif word in Mydict:
  66.         del Mydict[word]
  67.         g.msgbox('单词%s已从字典中移除!' % word)
  68.     else:
  69.         g.msgbox('单词%s在字典中并不存在!' % word)

  70.    

  71.     return Mydict

  72. def search(Mydict):
  73.     msg = '待查询的英文单词:'
  74.     title = '查询单词'
  75.     word = g.enterbox(msg,title)
  76.     if word == None:
  77.         pass
  78.     elif word == '':
  79.         g.msgbox('您并未输入单词,请重新输入!','Warning','确定')
  80.         search(Mydict)
  81.     elif word in Mydict:
  82.         msg1 = word + '的释义如下:'
  83.         title1 = title + ':' + word
  84.         text1 = Mydict[word]
  85.         g.textbox(msg1,title1,text1)
  86.     else:
  87.         try:
  88.             choice = g.buttonbox(word + '在字典中并不存在,是否加入字典?',choices = ('Yes','No'))
  89.             if choice == 'Yes':
  90.                 add_word(Mydict,values = [word,])
  91.             else:
  92.                 pass

  93.         except TypeError:
  94.             pass
  95.    


  96. def main():
  97.     filename = 'Mydict_binary.pkl'
  98.     try:
  99.         Mydict = load_data(filename)
  100.     except FileNotFoundError:
  101.         Mydict = dict()
  102.         save_data(filename,Mydict)
  103.     flag = welcome()
  104.     if flag == None:
  105.         sys.exit()
  106.     while True:
  107.         choice = menu()
  108.         if choice == '显示字典':
  109.             display(Mydict)
  110.         if choice == '添加单词':
  111.             Mydict = add_word(Mydict)
  112.             save_data(filename,Mydict)
  113.         if choice == '删除单词':
  114.             Mydict = del_word(Mydict)
  115.             save_data(filename,Mydict)
  116.         if choice == '查询单词':
  117.             search(Mydict)
  118.         if choice == None or choice == '退出':
  119.             sys.exit()
  120.         
  121.    
  122.    
  123. main()
复制代码

easygui的字体比较丑,显示字位置居中不会调,界面待优化,欢迎界面优化的意见~~
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-9-19 19:50:10 | 显示全部楼层
楼主加油!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-22 23:05:33 | 显示全部楼层
报错,求解
4556.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-25 22:42:13 | 显示全部楼层

我的gui框架用的是easygui,要导入这个模块的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-25 22:42:49 | 显示全部楼层
Estein 发表于 2016-9-25 22:42
我的gui框架用的是easygui,要导入这个模块的

好的,明白了,还没学习到
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-25 22:46:56 | 显示全部楼层
人zai旅途 发表于 2016-9-25 22:42
好的,明白了,还没学习到

可以找一下,python的第三方库,包括numpy,tkinter等比较好用的库都有
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-25 23:06:49 | 显示全部楼层
Estein 发表于 2016-9-25 22:46
可以找一下,python的第三方库,包括numpy,tkinter等比较好用的库都有

嗯嗯,多谢楼主
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-24 18:18:00 | 显示全部楼层

下载easygui就是进入命令操作符(cmd)输入
  1. pip install easygui
复制代码
就行了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-20 06:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表