Closed JiaMing07 closed 2 years ago
整体上做的很棒,作为初学者提出表扬
def pretreated():
'''
对读入的单词本进行预处理
拆成单个单词,并存入列表
若已经有翻译完成的.translated_words.json文件,则直接读取,形成dic;
否则调用translate_words函数生成.translated_words.json文件,再进行接下来的操作
'''
try:
with open("./collection.txt", "r") as f:
words = np.asarray(list(filter(None, f.read().split("\n"))))
lst=[]
for word in words:
word=word.split(',')
for w in word:
w=w.strip()
lst.append(w)
dic_name=".translated_words.json"
if os.path.exists(dic_name):
with open(dic_name) as t:
dic=json.load(t)
else:
dic=translate_words(words)
except Exception as e:
print("pretreated")
embed(header=str(e))
return dic,lst
注意这个函数,内部是不需要用到 np.assary 的,当然,你参考我的示例代码用了这一步,没有太大问题,其实此处用原生 list 即可。另外一个方面,我不是很建议变量命名为 lst,dic,因为这样是表达了其类型,但是没有表达一个变量的物理含义
在代码风格上,注意运算符的左右需要有空格,比如 word = word.split(',')
还有 def main(num, random, start, length):
,而你的 main
函数定义就很好,表达了物理意义,最好再注释变量类型,例如:def main(num : int, random : bool, start : int, length : int):
整体上完成度很棒,我推荐参考下这份代码,学习下他的一些代码风格:https://git.tsinghua.edu.cn/lkm20/3.0-hw1/-/tree/master/
注意,在你的 readme 里面,也习惯中英文之间打空格
你可以思考下自己构建了这个 ndarray:
words = np.asarray(list(filter(None, open(in_filename,'r').read().split("\n"))))
而不用 list,有什么好处,有什么坏处。自己可以简单做实验试试看是否会有效率区别,以及思考为什么有这个效率区别。如果你没思考出来,欢迎周六来听我的进一步课程。
https://git.tsinghua.edu.cn/shenjm21/words-reviewer