查找首字母与Python相关的的英文词汇的小程序的进一步完善
? 本人是Python学习爱好者,菜鸟。昨天编了一个针对Python相关的英文词汇的单纯查询的小程序,后来在完善字典的时候,突然感觉不如再设计一个添加的模块功能,既然有添加了,也应该有删除。于是开始动手实践,编程最大的收获应该是反复调试程序和修正思路的过程中所学到的知识。话不多说,我把源程序代码分享一下:
编程思路如下:
-
利用首字母(26个英文字母)查找相关的Python英文词汇。比方说以a开头的,有“【‘appearance外表’, ‘assert/assertion异常’, ‘add添加’, ‘args/argument参数’, ‘attribute/attr属性’】”。 -
生成一个字典,以首字母为键(首字母小写),以词汇列表为值。 -
定义根据首字母查询词汇的函数。 -
定义添加词汇条目的函数。 -
定义删除指定词汇条目的函数。 -
设计主界面 源码如下:
Python_dict = {'a':['appearance外表', 'assert/assertion异常',' add添加', 'args/argument参数', 'attribute/attr属性'],
'b':['==byte==字节、位组、位元组', 'bool布尔类型', 'bug故障(虫子)', 'break突破/跳出'],
'c':['cmd/command命令', 'close关闭', 'column列', 'char字符类型', 'class类', 'create创建', 'continue继续', 'case情形',\
'capitalize用大写字母或印刷', 'copy复制', 'clear清除', 'coding编码', 'character字符', 'count计数', 'comma引号'],
'd':['demo演示', 'division除法', 'downloads下载', 'define定义', 'decode解码', 'depth深度', 'default默认', 'dict字典',\
'difference差数', 'discord丢弃', 'del/delete删除', 'data数据'],
'e':['exception异常', 'editor编辑', 'exit退出', 'extends延长,推广,继承', 'encode编码', 'even偶数', 'execute执行',\
'expression表达式', 'extend扩展', 'error错误', 'end结果'],
'f':['finally最后', 'float浮点型', 'factorial阶乘的,因子', 'find查找', 'flush冲刷', 'function方法/函数', 'format格式化',\
'file文件'],
'g':['global全局变量', 'group组'],
'h':['height高度'],
'i':['int整型', 'interpret解释', 'interpreter解释器', 'instance实例,情况', 'install安装', 'indentation缩进',\
'ignore case或略大小写', 'inside内部', 'info信息', 'infinite无穷', 'import导入', 'item项', 'intersection相交/交叉',\
'insert插入', 'input输入', 'invalid无效', 'identifier名称/标识符', 'iterable可迭代对象', 'index索引'],
'j':[''],
'k':['kwargs关键字参数', 'key键'],
'l':['local局部作用域', 'long长整型', '==login==登录', 'list列表', 'lower小写', 'less小于'],
'm':['main主要的', 'match匹配', 'missing丢失', 'module模块', 'mapping映射', 'max最大', 'min最小'],
'n':[''],
'o':['outside外部', 'object对象'],
'p':['private私有的', 'public公共的/公用的', 'perimeter周长', 'params参数', 'power幂', 'positional位置的', 'prompt提示',\
'pop取出/弹出', 'path路径', 'project项目', 'print打印输出'],
'q':['quit退出', 'quotation引用'],
'r':['==rename==重命名', 'result结果', 'row行', 'random随机的', 'run运行/跑', 'reset重新设置', 'radius半径', 'regular规则',\
'recursion递归', 'required必须', 'range范围', 'remove移除', 'reverse反向', 'replace替换'],
's':['scripts脚本', 'self自身', 'search查找', 'salary薪水', 'switch判断语句', 'string字符串类型', 'successful成功', 'search查询',\
'square平方', 'system系统', 'step步长', 'sep/separate分隔', 'seq/sequence序列', 'swap互换', 'subset子集', 'sub附属',\
'superset父集/超集', 'symmetric对称', 'set集合', 'setting设置', 'sort排序', 'strip去除', 'syntax语法', 'start开始'],
't':['try尝试', 'type类型', 'test测试', 'True真', 'tuple元组', 'title标题'],
'u':['unexpected不期望的', 'unicode万国码/统一字符标准', 'union联合', 'unsupported不支持的', 'update更新', 'upgrade升级','upper上面'],
'v':['==variables==变量', 'version版本', 'void空的/没有返回值的', 'value值', 'versus/vs.对抗/相对的'],
'w':['window窗口', 'width宽度', 'weight重量'],
'x':[''],
'y':['yield生产/生成'],
'z':['zip解压/拉链']}
import csv
def find_Word(letter):
with open('python_dict.csv', mode='r') as fr:
reader = csv.reader(fr, delimiter = ',')
for row in reader:
if row[0] == letter:
print(f'您要查找的{letter}相关词汇如下:'+'\n',row[1])
break
else:
print('No found!')
fr.close()
def add_Word(letter, words):
dict_words1 = final_csv()
for key in dict_words1.keys():
if letter == key:
dict_words1[letter].append(words)
with open('python_dict.csv', mode = 'w', newline='') as ft:
writer = csv.writer(ft, delimiter = ',')
for key in dict_words1.keys():
writer.writerow([key, dict_words1[key]])
print(f'您已成功添加{words}词条')
ft.close()
def del_Word(letter, words):
dict_words1 = final_csv()
for key in dict_words1.keys():
if letter == key:
dict_words1[letter].remove(words)
with open('python_dict.csv', mode = 'w', newline='') as fd:
writer = csv.writer(fd, delimiter = ',')
for key in dict_words1.keys():
writer.writerow([key, dict_words1[key]])
print(f'您已成功删除{words}词条')
fd.close()
def input_letter():
try:
letter1 = input('Please enter an initial letter of the word that you want to find:').lower()
return letter1
except:
print('请核实输入内容!')
def input_words():
try:
words = input('Please enter the words to be added: ')
return words
except:
print('请核实输入内容!')
def input_words_del():
try:
words = input('Please enter the words to be deleted: ')
return words
except:
print('请核实输入内容!')
def ask_question():
question = input('Do you want to quit?(q)').lower()
if question == 'q' or question == 'quit':
return False
def main():
print('\n')
print(' Python相关英文词汇(查询-添加-删除)程序')
print('-'*40)
print(' 1. 查 询\n 2. 添 加\n 3. 删 除\n 4. 退 出')
print('-'*40)
def operation():
main()
choice = int(input('请输入选项:(1,2,3,4)'))
done = True
while done:
if choice == 1:
letter1 = input_letter()
find_Word(letter1)
done = ask_question()
elif choice == 2:
letter1 = input_letter()
words1 = input_words()
add_Word(letter1, words1)
done = ask_question()
elif choice == 3:
letter1 = input_letter()
words1 = input_words_del()
del_Word(letter1, words1)
done = ask_question()
elif choice == 4:
break
def final_csv():
py_dict = {}
with open('python_dict.csv', mode='r') as f:
reader = csv.reader(f, delimiter=',')
for row in reader:
row_lst = row[1].strip('[]').replace('\'', '').split(',')
row1 = []
for i in row_lst:
row1.append(i.strip(' '))
py_dict[row[0]] = row1
f.close()
with open('python_dict.csv', mode='w') as fw:
writer = csv.writer(fw, delimiter=',')
for key in py_dict.keys():
writer.writerow([key, py_dict[key]])
return py_dict
fw.close()
if __name__ == '__main__':
operation()
final_csv()
效果如下图: § 主界面: § 查询功能 § 添加功能 § 删除功能 § 退出功能 总 结
利用字典生成的csv文件,如果感兴趣的可以导出电子表格文件,可以自行试试,不再赘述。此小程序可以修改查找任何相关的命令集,比如Linux,Windows,mac系统等命令。
|