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学得没咋上心,一周就那么学个一两个小时,就当了解了解
等我学好了再回来修改代码(误