python英语字典实验问题

import urllib.request
import hashlib
import json
import random
import os

class Word:
    def __init__(self,word,note=""):
        self.word=word
        self.note=note


class MyWords:


    def insert_update(self,word,note):
        i=0
        j=len(self.words)-1
        while i<=j:
            m=(i+j)//2
            if self.words[m].word>word:
                j=m-1
            elif self.words[m].word<word:
                i=m+1
            else:
                if note!="":
                    self.words[m].note=note
                    print("更新单词",word,"成功")
                return
        self.words.insert(i,word(word,note))
        print("插入单词",word,"成功")

    def delete(self,word):
        i=0
        j=len(self.words)-1
        while i<=j:
            m=(i+j)//2
            if self.words[m].word>word:
                j=m-1
            elif self.words[m].word<word:
                i=m+1
            else:
                del self.words[m]
                print("删除单词",word,"成功")
                return
        print("没有找到单词",word)

    def seek(self,word):
        i=0
        j=len(self.words)-1
        while i<=j:
            m=(i+j)//2
            if self.words[m].word>word:
                j=m-1
            elif self.words[m].word<word:
                i=m+1
            else:
                print(word,"--->",self.words[m].note)
                return
        print("没有找到单词",word)

    def show(self,w):
        for i in range(len(self.words)):
            if self.words[i].word.find>=0:
                print("%-32s%s" % (self.words[i].word,self.words[i].note))
                if(i+1)%20==0:
                    input("Press any key to continue")
        print()

    def scanWord(self,s):
        s=s.lower()
        i=0
        w=""
        while i<len(s):
            c=s[i]
            if c>='a'and c<='z':
                w=w+c
            else:
                if w!="":
                    self.insert_update(w,"")
                    w=""
            i=i+1

    def scanFile(self,fileName):
        try:
            f=open(fileName,"rt")
            s=f.read()
            f.close()
            self.scanWord(s)
        except Exception as e:
            print(e)

    def scanWeb(self,url):
        try:
            resp=urllib.request.urlopen(url)
            data=resp.read()
            data=data.decode()
            self.scanWord(data)
        except Exception as e:
            print(e)

    def save(self):
        try:
            f=open("words.txt","wt")
            for w in self.words:
                f.write(w.word+","+w.note+"\n")
            f.close()
        except Exception as e:
            print(e)

    def read(self):
        self.words=[]
        if os.path.exists("words.txt"):
            try:
                f=open("words.txt","rt")
                while True:
                    s=f.readline().strip("\n")
                    if s=="":
                        break
                    s=s.split(",")
                    if len(s)==2:
                        self.words.append(Word(s[0],s[1]))
                f.close()
            except Exception as e:
                print(e)

    def translate(self,word):
        try:
            url="http://api.fanyi.baidu.com/api/trans/vip/translate?from=en&to=zh"
            appid=2015063000000001
            key=12345678
            salt=str(random.randint(100000,999999))
            #appid+q+salt+秘钥
            sign=appid+word+salt+key
            sign=hashlib.md5(sign.encode("utf-8")).hexdigest()
            url=url+"&q="+word+"&appid="+appid+"&salt="+salt+"&sign="+sign
            resp=urllib.request.urlopen(url)
            data=resp.read()
            data=data.decode()
            data=json.loads(data)
            if"error_code"in data.keys():
                print("translate failed")
            else:
                dst=data["trans_result"][0]["dst"]
                dst=dst.replace(",","")
                print(word,"--->",dst)
                self.insert_update(word,dst)
        except Exception as e:
            print(e)

    def process(self):
        self.read()
        while True:
            st=input(">").strip().lower()
            st=st.split(" ")
            s=st[0]
            t=""
            if len(st)==2:
                t=st[1]
            if s=="show":
                self.show(t)
            elif s=="seek":
                if t!="":
                    self.seek(t)
            elif s=="translate":
                if t!="":
                    self.translate(t)
            elif s=="insert":
                if t!="":
                    self.insert_update(t,"")
            elif s=="delete":
                if t!="":
                    self.delete(t)
            elif s=="file":
                fileName=t
                if fileName!=""and os.path.exists(fileName):
                    self.scanFile(fileName)
            elif s=="web":
                url=t
                if url!=""and url.startswith("http://"):
                    self.scanWeb(url)
            elif s=="exit":
                break
            else:
                print("显示单词     show words")
                print("查找单词     seek word")
                print("翻译单词     translate word")
                print("增加单词     insert word")
                print("删除单词     delete word")
                print("文件获取     file fileName")
                print("网络获取     web url")
                print("退出程序     exit")
        self.save()

mw=MyWords()
mw.process()

执行show和translate功能是出现以下问题:

 

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^