python英语查询词典-随堂作业

python学习日记

学python时的作业,磕磕碰碰中,歪歪扭扭地写出来了,中间遇到很多问题,思路混乱

  • 题目如下

制作英文学习词典。编写程序制作英文学习词典,词典有3个基本功能:添加、查询和退出。程序读取源文件路径下的txt格式词典文件,若没有就创建一个。词典文件存储方式为“英文单词 中文单词”,每行仅有一对中英释义。程序会根据用户的选择进入相应的功能模块,并显示对应的操作提示。当添加的单词已存在时,显示“该单词已添加到字典库”;当查询的单词不存在时,显示“字典库中未找到这个单词”。用户输入其他选项时,提示“输入有误”。

我的不成熟想法们

将查询、添加和退出写成菜单,根据输入不同选项来调用不同函数
比如添加功能

 fo = open("lab13/english.csv", "a", encoding='utf-8')
 word = input("请输入添加的词组(英,中 ','号隔开):")
 fo.writelines(word+"\n")
 fo.close()

赶赶单单几行代码就输入进去了,然后又想到要先确认单词是否存在,然后再进行输入,那么就得先研究查询功能了
查询的思路是先打开文件,用for 循环依次读取文件里的内容 写入ls[]里面,然后判断读取到的内容,找到了就输出。
那么问题是我的词典是这样的一个二维数组文件
python英语查询词典-随堂作业
我要怎么获取二维数组里面的某一行呢…
然后我想到了用两个for循环,慢慢获取,再用 for in判断查找的成功与否,
然后我定义了一个judge字符串用来判断有没有找到单词,找到了就break中断就好了,不然会重复赋值judge。如果没有,judge就是no,然后就会输出找不到这个单词
就是这样↓ …

if word2 in lsn:
print(lsn[:])
word2 = “yes”
break

但是实际上肯定还有很多简单快捷的方法,但我就是没想到…
然后写了一大堆,这个就是查询功能

def search():  # 查找
    fo = open("lab13/english.csv", "r", encoding='utf-8')
    word2 = input("请输入查找的单词(中或英):")
    ls = []
    for line in fo:
        line = line.replace("\n", "")
        ls = line.split("\n")
        lsn = ""
        judge = "yes"
        for s in ls:
            lsn += "{}".format(s)
        if word2 in lsn:
            print(lsn[:])
            word2 = "yes"
            break
        else:
            judge = "not"
    if judge == "not":
        print("找不到这个单词")
    fo.close()

那么查询也做好了,然后再在添加里面,事先判断是否存在再添加就好了

总结

文件的读写操作,看看书就写出来了,就是写的时候逻辑很乱,应付作业就算了…
因为python学得没咋上心,一周就那么学个一两个小时,就当了解了解
等我学好了再回来修改代码(误

上一篇:闰年判断


下一篇:五一劳动之第三题