编写Python参考手册速查软件

编写Python参考手册速查软件


​ 学习Python编程会经常用到各种函数或者涉及到列表的操作、字典的操作、字符串的操作。由于本人年龄偏大而且记忆力不如从前,为了学习方便随时可以查到相关的语法说明,为此编写了一个参考手册速查程序。与大家分享一下,首先说明一下编程的思路和流程以及编程过程中遇到的一些问题。编写该程序主要用到字典和字符和列表的相关操作。本软件数据采用csv格式,可以随时整理成电子表格输出。

编 程 思 路

1. 设计数据的查询方式,查询手册主要是根据语法的英文首字母进行索引(因为每个人不一定把语法的完整词汇记下来)

2. 根据查询方式设计数据的存储形式,字典的格式正符合此要求(键值对),设计两个字典,都以首字母作为键,一个字典(函数)以首字母开头的语法作为值,一个语法描述为值。两个字典的首字母是一一对应的,存储的文件为csv格式

3. 编写录入和修改、增加、删除模块

4. 设计程序主界面

5. 整合主程序

分享源代码

根据查询的功能,分为内置函数查询、列表方法查询、字典方法查询、字符串方法查询。

功能板块及源码

1. 内置函数的csv文件录入和生成源码如下:

#_*_coding:utf-8_*_
# 作者      :liuxiaowei
# 创建时间   :3/18/22 10:04 PM
# 文件      :内置函数字典及描述生成.py
# IDE      :PyCharm

import csv

# 自定义一个函数生成一个首字母是a-z的空字典
def cre_Dic(PyD = {}):
    letter_key = 'abcdefghijklmnopqrstuvwxyz'
    for i in range(len(letter_key)):
        PyD[letter_key[i]] = []
    return PyD

# 定义一个添加字典值(函数名列表)函数,参数为首字母作为键,函数名为对应的列表值
def add_Words(letter, words_Dict, words):
    if letter.lower() in words_Dict.keys():
        for key in words_Dict.keys():
            if letter.lower() == key:
                words_Dict[letter].append(words)

    else:
        print('请核实输入的信息!')

# 定义一个函数添加描述列表,content为描述的内容作为字典值列表的内容,desc_Dict为描述字典,首字母为键
def add_Desc(letter, desc_Dict, content):
    if letter.lower() in desc_Dict.keys():
        for key in desc_Dict.keys():
            # 输入的内容不能为空
            if letter.lower() == key and content != '':
                desc_Dict[letter].append(content)
    else:
        print('请核实输入的信息!')



# 利用字典生成函数名称的csv文件的函数,参数为函数名字典
def create_Csv(Pydict):
    # 生成指定文件名的csv文件
    with open('内置函数名称文件.csv', mode = 'w', newline='') as f:
        writer = csv.writer(f, delimiter = ',')
        for key in Pydict.keys():
            writer.writerow([key, Pydict[key]])

# 利用字典生成函数的描述的csv文件的函数,参数为函数名字典
def create_Csv_desc(Pydict):
    # 生成指定文件名的csv文件
    with open('内置函数名称描述文件.csv', mode = 'w', newline='') as f:
        writer = csv.writer(f, delimiter = ',')
        for key in Pydict.keys():
            writer.writerow([key, Pydict[key]])



# 定义一个向函数名字典添加数据并生成csv文件的函数
def Oper_Fun_name_Dict():
    # 调用生成键为26个英文字母,值为空的函数生成函数名字典的函数
    Py_func_Dic = cre_Dic()
    # 设定一个逻辑变量
    Done = True
    # 循环操作,连续输入数据
    while Done:
        # 输入的首字母用于查找相应的字典键值对
        letter1 = input('\n请输入首字母(26个英文字母不分大小写):')
        # 如果输入quit,退出程序,生成csv文件
        if  letter1 == 'quit':
            create_Csv(Py_func_Dic)
            break
        else:
            # 输入函数名称
            words = input('\n请输入函数名称(不分大小写):')
            # 调用添加函数名的函数,参数为首字母,函数字典,函数名
            add_Words(letter1,Py_func_Dic, words)

# 定义一个向函数描述的字典添加数据并生成csv文件的函数
def Oper_Func_desc_Dict():
    # 生成一个函数名称描述的字典
    desc_Dict = cre_Dic()
    # 定义一个逻辑变量
    Done = True
    # 循环操作,连续输入数据
    while Done:
        # 输入的首字母用于查找相应的字典键值对
        letter1 = input('\n请输入首字母(26个英文字母不分大小写):')
        # 如果输入quit,退出程序,生成csv文件
        if letter1 == 'quit':
            create_Csv_desc(desc_Dict)
            break
        else:
            # 输入函数的描述内容
            contents = input('\n请输入描述内容:')
            # 调用添加函数名描述内容的函数,参数为首字母,函数描述字典,描述内容
            add_Desc(letter1, desc_Dict, contents)

# 定义一个主函数,生成主界面
def main():
    print('\n')
    print('==== Python知识手册速查程序之文件生成模块 ====  ')
    print('-' * 40)
    print('  1. 内置函数名称文件生成\n  2. 内置函数描述文件生成\n  3. 退 出')
    print('-' * 40)


# 定义一个操作函数operation
def Operation():
    # 调用界面主函数
    main()
    # 定义一个选择变量
    choice = int(input('请输入选项:(1,2,3)'))
    Done = True
    # 循环操作
    while Done:
        if choice == 1:
            Oper_Dict_name()
        elif choice == 2:
            Oper_desc_Dict()
        question = input('Do you want to quit?(q)').lower()
        if question == 'q' or question == 'quit':
            break
        else:
            Done = True
        if choice == 3:
            break

# 启动主程序
if __name__ == "__main__":
    Operation()

运行结果如下:

编写Python参考手册速查软件_第1张图片

2. 列表方法的文件生成代码与内置函数完全一样的,只是把相应的csv文件名修改一下就可以了,源码如下:

#_*_coding:utf-8_*_
# 作者      :liuxiaowei
# 创建时间   :3/18/22 3:16 PM
# 文件      :生成列表方法的文件.py
# IDE      :PyCharm

import csv
'''
用于列表的方法的'方法'和'描述'的生成文件

'''
# 自定义一个函数生成一个首字母是a-z的空字典
def cre_Dic(PyD = {}):
    letter_key = 'abcdefghijklmnopqrstuvwxyz'
    for i in range(len(letter_key)):
        PyD[letter_key[i]] = []
    return PyD

# 利用字典生成函数名称的csv文件的函数,参数为函数名字典
def create_Csv(Pydict):
    # 生成指定文件名的csv文件
    with open('列表方法文件.csv', mode = 'w', newline='') as f:
        writer = csv.writer(f, delimiter = ',')
        for key in Pydict.keys():
            writer.writerow([key, Pydict[key]])

# 利用字典生成函数的描述的csv文件的函数,参数为函数名字典
def create_Csv_desc(Pydict):
    # 生成指定文件名的csv文件
    with open('列表方法描述文件.csv', mode = 'w', newline='') as f:
        writer = csv.writer(f, delimiter = ',')
        for key in Pydict.keys():
            writer.writerow([key, Pydict[key]])

# 定义一个添加字典值(函数名列表)函数,参数为首字母作为键,函数名为对应的列表值
def add_Words(letter, words_Dict, words):
    if letter.lower() in words_Dict.keys():
        for key in words_Dict.keys():
            if letter.lower() == key:
                words_Dict[letter].append(words)
    else:
        print('请核实输入的信息!')

# 定义一个函数添加描述列表,content为描述的内容作为字典值列表的内容,desc_Dict为描述字典,首字母为键
def add_Desc(letter, desc_Dict, content):
    if letter.lower() in desc_Dict.keys():
        for key in desc_Dict.keys():
            # 输入的内容不能为空
            if letter.lower() == key and content != '':
                desc_Dict[letter].append(content)
    else:
        print('请核实输入的信息!')


# 定义一个向函数描述的字典添加数据并生成csv文件的函数
def Oper_Lst_desc_Dict():
    # 生成一个函数名称描述的字典
    desc_Dict = cre_Dic()
    # 定义一个逻辑变量
    Done = True
    # 循环操作,连续输入数据
    while Done:
        # 输入的首字母用于查找相应的字典键值对
        letter1 = input('\n请输入首字母(26个英文字母不分大小写):')
        # 如果输入quit,退出程序,生成csv文件
        if letter1 == 'quit':
            create_Csv_desc(desc_Dict)
            break
        else:
            # 输入函数的描述内容
            contents = input('\n请输入列表方法描述内容:')
            # 调用添加函数名描述内容的函数,参数为首字母,函数描述字典,描述内容
            add_Desc(letter1, desc_Dict, contents)


# 定义一个向函数名字典添加数据并生成csv文件的函数
def Oper_Fun_name_Dict():
    # 调用生成键为26个英文字母,值为空的函数生成函数名字典的函数
    Py_func_Dic = cre_Dic()
    # 设定一个逻辑变量
    Done = True
    # 循环操作,连续输入数据
    while Done:
        # 输入的首字母用于查找相应的字典键值对
        letter1 = input('\n请输入首字母(26个英文字母不分大小写):')
        # 如果输入quit,退出程序,生成csv文件
        if  letter1 == 'quit':
            create_Csv(Py_func_Dic)
            break
        else:
            # 输入函数名称
            words = input('\n请输入列表名称(不分大小写):')
            # 调用添加函数名的函数,参数为首字母,函数字典,函数名
            add_Words(letter1,Py_func_Dic, words)



# 定义一个操作函数operation
def Operation():
    # 调用界面主函数
    main()
    # 定义一个选择变量
    choice = int(input('请输入选项:(1,2,3)'))
    Done = True
    # 循环操作
    while Done:
        if choice == 1:
            Oper_Dict_name()
        elif choice == 2:
            Oper_desc_Dict()
        question = input('Do you want to quit?(q)').lower()
        if question == 'q' or question == 'quit':
            break
        else:
            Done = True
        if choice == 3:
            break

# 定义一个主函数,生成主界面
def main():
    print('\n')
    print('==== Python知识手册速查程序之文件生成模块 ====  ')
    print('-' * 40)
    print('  1. 列表方法名称文件生成\n  2. 列表方法描述文件生成\n  3. 退 出')
    print('-' * 40)


if __name__ == "__main__":
    Operation()

运行结果如下:

编写Python参考手册速查软件_第2张图片

3. 字典方法的文件生成,源码如下:

#_*_coding:utf-8_*_
# 作者      :liuxiaowei
# 创建时间   :3/18/22 4:05 PM
# 文件      :生成字典及其描述.py
# IDE      :PyCharm
import csv
'''
用于字典的方法的'方法'和'描述'的生成文件

'''
# 自定义一个函数生成一个首字母是a-z的空字典
def cre_Dic(PyD = {}):
    letter_key = 'abcdefghijklmnopqrstuvwxyz'
    for i in range(len(letter_key)):
        PyD[letter_key[i]] = []
    return PyD

# 利用字典生成字典名称的csv文件的函数,参数为函数名字典
def create_Csv_Name(Pydict):
    # 生成指定文件名的csv文件
    with open('字典方法名称文件.csv', mode = 'w', newline='') as f:
        writer = csv.writer(f, delimiter = ',')
        for key in Pydict.keys():
            writer.writerow([key, Pydict[key]])

# 利用字典生成函数的描述的csv文件的函数,参数为函数名字典
def create_Csv_Desc(Pydict):
    # 生成指定文件名的csv文件
    with open('字典方法描述文件.csv', mode = 'w', newline='') as f:
        writer = csv.writer(f, delimiter = ',')
        for key in Pydict.keys():
            writer.writerow([key, Pydict[key]])

# 定义一个添加字典值为字典方法名字的列表函数,参数为首字母作为键,函数名为对应的列表值
def add_Words(letter, words_Dict, words):
    if letter.lower() in words_Dict.keys():
        for key in words_Dict.keys():
            if letter.lower() == key:
                words_Dict[letter].append(words)
    else:
        print('请核实输入的信息!')

# 定义一个函数添加描述列表,content为描述的内容作为字典值列表的内容,desc_Dict为描述字典,首字母为键
def add_Desc(letter, desc_Dict, content):
    if letter.lower() in desc_Dict.keys():
        for key in desc_Dict.keys():
            # 输入的内容不能为空
            if letter.lower() == key and content != '':
                desc_Dict[letter].append(content)
    else:
        print('请核实输入的信息!')


# 定义一个向函数描述的字典添加数据并生成csv文件的函数
def Oper_desc_Dict():
    # 生成一个函数名称描述的字典
    desc_Dict = cre_Dic()
    # 定义一个逻辑变量
    Done = True
    # 循环操作,连续输入数据
    while Done:
        # 输入的首字母用于查找相应的字典键值对
        letter1 = input('\n请输入首字母(26个英文字母不分大小写):')
        # 如果输入quit,退出程序,生成csv文件
        if letter1 == 'quit':
            create_Csv_Desc(desc_Dict)
            break
        else:
            # 输入函数的描述内容
            contents = input('\n请输入字典方法描述内容:').replace(',', ',')
            # 调用添加函数名描述内容的函数,参数为首字母,函数描述字典,描述内容
            add_Desc(letter1, desc_Dict, contents)


# 定义一个向函数名字典添加数据并生成csv文件的函数
def Oper_Dict_name():
    # 调用生成键为26个英文字母,值为空的字典生成字典名字典的函数, 比较绕口
    Py_Dic = cre_Dic()
    # 设定一个逻辑变量
    Done = True
    # 循环操作,连续输入数据
    while Done:
        # 输入的首字母用于查找相应的字典键值对
        letter1 = input('\n请输入首字母(26个英文字母不分大小写):')
        # 如果输入quit,退出程序,生成csv文件
        if  letter1 == 'quit':
            create_Csv_Name(Py_Dic)
            break
        else:
            # 输入函数名称
            words = input('\n请输入字典方法名称(不分大小写):').replace(',',',')
            # 调用添加函数名的函数,参数为首字母,函数字典,函数名
            add_Words(letter1,Py_Dic, words)


# 定义一个主函数,生成主界面
def main():
    print('\n')
    print('==== Python知识手册速查程序之文件生成模块 ====  ')
    print('-' * 40)
    print('  1. 字典方法文件生成\n  2. 字典方法描述文件生成\n  3. 退 出')
    print('-' * 40)


# 定义一个操作函数operation
def Operation():
    # 调用界面主函数
    main()
    # 定义一个选择变量
    choice = int(input('请输入选项:(1,2,3)'))
    Done = True
    # 循环操作
    while Done:
        if choice == 1:
            Oper_Dict_name()
        elif choice == 2:
            Oper_desc_Dict()
        question = input('Do you want to quit?(q)').lower()
        if question == 'q' or question == 'quit':
            break
        else:
            Done = True
        if choice == 3:
            break


if __name__ == "__main__":
    Operation()

运行结果如下图:

编写Python参考手册速查软件_第3张图片

4. 字符串方法文件生成源码如下:

#_*_coding:utf-8_*_
# 作者      :liuxiaowei
# 创建时间   :3/18/22 5:07 PM
# 文件      :字符串方法及描述生成文件.py
# IDE      :PyCharm

import csv
'''
用于字符串的方法的'方法'和'描述'的生成文件

'''
# 自定义一个函数生成一个首字母是a-z的空字典
def cre_Dic(PyD = {}):
    letter_key = 'abcdefghijklmnopqrstuvwxyz'
    for i in range(len(letter_key)):
        PyD[letter_key[i]] = []
    return PyD

# 利用字典生成字符串名称的csv文件的函数,参数为函数名字典
def create_Csv_String(Pydict):
    # 生成指定文件名的csv文件
    with open('字符串方法名称文件.csv', mode = 'w', newline='') as f:
        writer = csv.writer(f, delimiter = ',')
        for key in Pydict.keys():
            writer.writerow([key, Pydict[key]])


# 利用字典生成函数的描述的csv文件的函数,参数为函数名字典
def create_Csv_desc(Pydict):
    # 生成指定文件名的csv文件
    with open('字符串方法描述文件.csv', mode = 'w', newline='') as f:
        writer = csv.writer(f, delimiter = ',')
        for key in Pydict.keys():
            writer.writerow([key, Pydict[key]])

# 定义一个添加字典值(函数名列表)函数,参数为首字母作为键,函数名为对应的列表值
def add_Words(letter, words_Dict, words):
    if letter.lower() in words_Dict.keys():
        for key in words_Dict.keys():
            if letter.lower() == key:
                words_Dict[letter].append(words)
    else:
        print('请核实输入的信息!')

# 定义一个函数添加描述列表,content为描述的内容作为字典值列表的内容,desc_Dict为描述字典,首字母为键
def add_Desc(letter, desc_Dict, content):
    if letter.lower() in desc_Dict.keys():
        for key in desc_Dict.keys():
            # 输入的内容不能为空
            if letter.lower() == key and content != '':
                desc_Dict[letter].append(content)
    else:
        print('请核实输入的信息!')


# 定义一个向字符串描述的字典添加数据并生成csv文件的函数
def Oper_String_desc_Dict():
    # 生成一个函数名称描述的字典
    desc_Dict = cre_Dic()
    # 定义一个逻辑变量
    Done = True
    # 循环操作,连续输入数据
    while Done:
        # 输入的首字母用于查找相应的字典键值对
        letter1 = input('\n请输入首字母(26个英文字母不分大小写):')
        # 如果输入quit,退出程序,生成csv文件
        if letter1 == 'quit':
            create_Csv_desc(desc_Dict)
            break
        else:
            # 输入函数的描述内容
            contents = input('\n请输入描述内容:').replace(',', ',')
            # 调用添加函数名描述内容的函数,参数为首字母,函数描述字典,描述内容
            add_Desc(letter1, desc_Dict, contents)


# 定义一个向函数名字典添加数据并生成csv文件的函数
def Oper_String_name_Dict():
    # 调用生成键为26个英文字母,值为空的字典生成字典名字典的函数, 比较绕口
    Py_Dic = cre_Dic()
    # 设定一个逻辑变量
    Done = True
    # 循环操作,连续输入数据
    while Done:
        # 输入的首字母用于查找相应的字典键值对
        letter1 = input('\n请输入首字母(26个英文字母不分大小写):')
        # 如果输入quit,退出程序,生成csv文件
        if  letter1 == 'quit':
            create_Csv_String(Py_Dic)
            break
        else:
            # 输入函数名称,replace函数为了替换误输入的英文逗号,
            words = input('\n请输入字符串方法名称(不分大小写):').replace(',',',')
            # 调用添加函数名的函数,参数为首字母,函数字典,函数名
            add_Words(letter1,Py_Dic, words)


# 定义一个主函数,生成主界面
def main():
    print('\n')
    print('==== Python知识手册速查程序之文件生成模块 ====  ')
    print('-' * 40)
    print('  1. 字符串方法文件生成\n  2. 字符串方法描述文件生成\n  3. 退 出')
    print('-' * 40)


# 定义一个操作函数operation
def Operation():
    # 调用界面主函数
    main()
    # 定义一个选择变量
    choice = int(input('请输入选项:(1,2,3)'))
    Done = True
    # 循环操作
    while Done:
        if choice == 1:
            Oper_String_name_Dict()
        elif choice == 2:
            Oper_String_desc_Dict()
        question = input('Do you want to quit?(q)').lower()
        if question == 'q' or question == 'quit':
            break
        else:
            Done = True
        if choice == 3:
            break


if __name__ == "__main__":
    Operation()

运行结果如下图:

编写Python参考手册速查软件_第4张图片

添加条目模块分为两部分:

增加函数名文件源码如下:
#_*_coding:utf-8_*_
# 作者      :liuxiaowei
# 创建时间   :3/18/22 6:44 PM
# 文件      :增加名字文件条目.py
# IDE      :PyCharm

import csv

# 定义一个添加字典值(函数名列表)函数,参数为首字母作为键,函数名为对应的列表值
def add_Words(letter, words_Dict, words):
    if letter.lower() in words_Dict.keys():
        for key in words_Dict.keys():
            if letter.lower() == key:
                words_Dict[letter].append(words)
    else:
        print('请核实输入的信息!')



# 定义一个最后的整理函数,一旦需要修改函数描述文件是需要调用这个函数
def final_csv():
    py_dict = {}
    with open('Py_String_Name.csv', mode='r') as f:
        reader = csv.reader(f, delimiter=',')
        for row in reader:
            # 把读出来的csv文件内容转成列表
            row_lst = row[1].strip('[]').replace('\'', '').split(',')
            # 临时创建一个空列表,添加去掉空格的内容
            row1 = []
            for i in row_lst:
                # 去掉列表中内容的前空格
                row1.append(i.strip(' '))
            py_dict[row[0]] = row1

    with open('Py_String_Name.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

# 生成csv文件
def create_Csv_desc(Pydict):
    # 生成指定文件名的csv文件
    with open('Py_String_Name.csv', mode = 'w', newline='') as f:
        writer = csv.writer(f, delimiter = ',')
        for key in Pydict.keys():
            writer.writerow([key, Pydict[key]])


# 修改函数描述csv文件内容的函数
def modi_desc_csv():
    desc_Dict = final_csv()
    Done = True
    # 循环操作,连续输入数据
    while Done:
        # 输入的首字母用于查找相应的字典键值对
        letter1 = input('\n请输入首字母(26个英文字母不分大小写):')
        # 如果输入quit,退出程序,生成csv文件
        if letter1 == 'quit':
            create_Csv_desc(desc_Dict)
            break
        else:
            # 输入函数的描述内容
            contents = input('\n请输入描述内容:')
            # 调用添加函数名描述内容的函数,参数为首字母,函数描述字典,描述内容
            add_Words(letter1, desc_Dict, contents)


if __name__ == "__main__":
    modi_desc_csv()
增加语法描述文件源码如下:
#_*_coding:utf-8_*_
# 作者      :liuxiaowei
# 创建时间   :3/18/22 2:51 PM
# 文件      :增加某个描述条目.py
# IDE      :PyCharm

import csv


# 定义一个函数添加描述列表,content为描述的内容作为字典值列表的内容,desc_Dict为描述字典,首字母为键
def add_Desc(letter, desc_Dict, content):
    if letter.lower() in desc_Dict.keys():
        for key in desc_Dict.keys():
            # 输入的内容不能为空
            if letter.lower() == key and content != '':
                desc_Dict[letter].append(content)
    else:

        print('请核实输入的信息!')


# 定义一个最后的整理函数,一旦需要修改函数描述文件是需要调用这个函数
def final_csv():
    py_dict = {}
    with open('内置函数名称文件.csv', mode='r') as f:
        reader = csv.reader(f, delimiter=',')
        for row in reader:
            # 把读出来的csv文件内容转成列表
            row_lst = row[1].strip('[]').replace('\'', '').split(',')
            # 临时创建一个空列表,添加去掉空格的内容
            row1 = []
            for i in row_lst:
                # 去掉列表中内容的前空格
                row1.append(i.strip(' '))
            py_dict[row[0]] = row1


    with open('Py_func_desc.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

def create_Csv_desc(Pydict):
    # 生成指定文件名的csv文件
    with open('内置函数名称描述文件.csv', mode = 'w', newline='') as f:
        writer = csv.writer(f, delimiter = ',')
        for key in Pydict.keys():
            writer.writerow([key, Pydict[key]])

# 修改函数描述csv文件内容的函数
def modi_desc_csv():
    desc_Dict = final_csv()
    Done = True
    # 循环操作,连续输入数据
    while Done:
        # 输入的首字母用于查找相应的字典键值对
        letter1 = input('\n请输入首字母(26个英文字母不分大小写):')
        # 如果输入quit,退出程序,生成csv文件
        if letter1 == 'quit':
            create_Csv_desc(desc_Dict)
            break
        else:
            # 输入函数的描述内容
            contents = input('\n请输入描述内容:')
            # 调用添加函数名描述内容的函数,参数为首字母,函数描述字典,描述内容
            add_Words(letter1, desc_Dict, contents)

if __name__ == "__main__":
    modi_desc_csv()
删除某个条目的文件源码如下:
#_*_coding:utf-8_*_
# 作者      :liuxiaowei
# 创建时间   :3/18/22 1:55 PM
# 文件      :删除描述文件的某个条目内容.py
# IDE      :PyCharm

import csv

# 定义一个函数添加描述列表,content为描述的内容作为字典值列表的内容,desc_Dict为描述字典,首字母为键
def del_Desc(letter, desc_Dict):
    if letter.lower() in desc_Dict.keys():
        for key in desc_Dict.keys():
            # 输入的内容不能为空
            if letter.lower() == key:
                desc_Dict[letter].remove()

# 定义一个最后的整理函数,一旦需要修改函数描述文件是需要调用这个函数
def final_csv():
    py_dict = {}
    with open('内置函数名称描述文件.csv', mode='r') as f:
        reader = csv.reader(f, delimiter=',')
        for row in reader:
            # 把读出来的csv文件内容转成列表
            row_lst = row[1].strip('[]').replace('\'', '').split(',')
            # 临时创建一个空列表,添加去掉空格的内容
            row1 = []
            for i in row_lst:
                # 去掉列表中内容的前空格
                row1.append(i.strip(' '))
            py_dict[row[0]] = row1


    with open('内置函数名称描述文件.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

def create_Csv_desc(Pydict):
    # 生成指定文件名的csv文件
    with open('内置函数名称描述文件.csv', mode = 'w', newline='') as f:
        writer = csv.writer(f, delimiter = ',')
        for key in Pydict.keys():
            writer.writerow([key, Pydict[key]])
# 修改函数描述csv文件内容的函数
def modi_desc_csv():
    desc_Dict = final_csv()
    Done = True
    # 循环操作,连续输入数据
    while Done:
        # 输入的首字母用于查找相应的字典键值对
        letter1 = input('\n请输入首字母(26个英文字母不分大小写):')
        del_Desc(letter1, desc_Dict)
        # 如果输入quit,退出程序,生成csv文件
        if letter1 == 'quit':
            create_Csv_desc(desc_Dict)
            break
        # else:
        #     # 输入函数的描述内容
        #     contents = input('\n请输入描述内容:')
            # 调用添加函数名描述内容的函数,参数为首字母,函数描述字典,描述内容


if __name__ == "__main__":
    modi_desc_csv()

手册查询主程序源码

#_*_coding:utf-8_*_
# 作者      :liuxiaowei
# 创建时间   :3/17/22 5:22 PM
# 文件      :create_Python_速查手册.py
# IDE      :PyCharm

import csv
# 导入时间模块是为了输出条目的时候停顿一下,可根据自己需要是否设定
# import time

# 定义一个查找函数, choice_Num参数为选择项的数字
def find_Word(letter, choice_Num=1, dict='内置函数名称文件.csv', desc='内置函数名称描述文件.csv'):
    # 判断选项,然后给(函数、列表、字典、字符串)名称和描述赋值
    if choice_Num == 2:
        dict, desc = '列表方法文件.csv', '列表方法描述文件.csv'

    elif choice_Num == 3:
        dict, desc = '字典方法名称文件.csv', '字典方法描述文件.csv'

    elif choice_Num == 4:
        dict, desc = '字符串方法名称文件.csv', '字符串方法描述文件.csv'
    else:
        pass

    # 打开Py_func.csv是函数名称的csv文件,读取数据
    with open(dict, mode='r') as fr:
        # 实例化一个reader对象
        reader = csv.reader(fr, delimiter=',')
        # 根据行去查找数据
        for row in reader:
            if row[0] == letter and row[1] != '':
                # 将读取的值转换为列表
                row1_lst = row[1].strip('[]').replace('\'', '').split(',')

                # 定义一个函数名的空列表
                func_name_lst = []
                for fun_name in row1_lst:
                    # 去掉列表中内容的前空格
                    func_name_lst.append(fun_name.strip(' '))
    # 打开描述内容csv文件
    with open(desc, mode='r') as fd:
        reader = csv.reader(fd, delimiter=',')
        for row in reader:
            if row[0] == letter and row[1] != '':
                # 将读取的描述内容变成列表, 去掉"'"单引号
                row2_lst = row[1].strip('[]').replace('\'', '').split(',')

                func_desc_lst = []
                for fun_desc_name in row2_lst:
                    # 去掉列表中内容的前空格
                    func_desc_lst.append(fun_desc_name.strip(' '))

    # 输出查找的函数及相应的描述内容
    print(f'你查找的与首字母{letter}相关的内置函数及描述为:\n')
    for i in range(len(func_name_lst)):
        if func_name_lst[i] != '':
            print(f'内置函数名:"{func_name_lst[i]}"  描 述为:{func_desc_lst[i]}')
            # 时间函数可以根据自己需要设计
            # time.sleep(2)
        else:
            print('没有此函数!')


# 定义一个主函数,生成主界面
def main():
    print('\n')
    print('==== Python知识手册速查程序 ====  ')
    print('-' * 40)
    print('  1. 内置函数查询\n  2. 列表方法查询(输入a)\n  3. 字典方法查询(输入a)\n  4. 字符串方法查询(输入s)\n  5. 退 出')
    print('-' * 40)


# 定义一个操作函数operation
def Operation():
    # 调用界面主函数
    main()
    # 定义一个选择变量
    choice = int(input('请输入选项:(1,2,3,4,5)'))
    Done = True
    # 循环操作
    while Done:
        # 判断选择,如果选择1
        for i in range(1, 5):
            if choice == i:
                letter1 = input("请输入函数名称首字母(不分大小写):").lower()
                find_Word(letter1, choice)
        question = input('Do you want to quit?(q)').lower()
        if question == 'q' or question == 'quit':
            break
        else:
            Done = True
        if choice == 5:
            break


if __name__ == "__main__":
    # 调用操作函数
    Operation()

运行结果如下图:

编写Python参考手册速查软件_第5张图片

备注:

此程序本人没加try: except:捕捉异常,可以自己添加,每个板块录入数据的时候,随时可以在输入首字母的时候输入quit退出。希望此程序对您所有启发和帮助。

你可能感兴趣的:(编程,总结经验,笔记,python,小程序,pycharm,macos,Python字符串-列表-字典)