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

这篇博客记录了作者使用Python编写英语学习词典的过程,包括词典的添加、查询和退出功能。通过读取txt文件存储的单词及其释义,作者在实现查询功能时遇到了如何在二维数组中查找特定单词的问题,最终通过双重循环和判断解决。虽然完成了功能,但作者认为还有更简洁的解决方案,并计划在未来深入学习Python后再改进代码。
摘要由CSDN通过智能技术生成

python学习日记

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

  • 题目如下

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

我的不成熟想法们

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

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

赶赶单单几行代码就输入进去了,然后又想到要先确认单词是否存在,然后再进行输入,那么就得先研究查询功能了
查询的思路是先打开文件,用for 循环依次读取文件里的内容 写入ls[]里面,然后判断读取到的内容,找到了就输出。
那么问题是我的词典是这样的一个二维数组文件
在这里插入图片描述
我要怎么获取二维数组里面的某一行呢…
然后我想到了用两个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学得没咋上心,一周就那么学个一两个小时,就当了解了解
等我学好了再回来修改代码(误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值