最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python學(xué)習(xí)之模塊化程序設(shè)計(jì)示例詳解

 更新時(shí)間:2022年03月07日 10:04:05   作者:渴望力量的哈士奇  
程序設(shè)計(jì)的模塊化指的是在進(jìn)行程序設(shè)計(jì)時(shí),把一個(gè)大的程序功能劃分為若干個(gè)小的程序模塊。每一個(gè)小程序模塊實(shí)現(xiàn)一個(gè)確定的功能,并且在這些小程序模塊實(shí)現(xiàn)的功能之間建立必要的聯(lián)系。本文將利用示例詳細(xì)介紹一下Python的模塊化程序設(shè)計(jì),需要的可以參考一下

關(guān)于模塊化程序設(shè)計(jì)

什么是模塊化程序設(shè)計(jì)?

程序設(shè)計(jì)的模塊化指的是在進(jìn)行程序設(shè)計(jì)時(shí),把一個(gè)大的程序功能劃分為若干個(gè)小的程序模塊。每一個(gè)小程序模塊實(shí)現(xiàn)一個(gè)確定的功能,并且在這些小程序模塊實(shí)現(xiàn)的功能之間建立必要的聯(lián)系,通過(guò)各個(gè)小模塊之間的互相協(xié)作完成整個(gè)大功能實(shí)現(xiàn)的方法。

模塊化設(shè)計(jì)程序的方法?

  • 一般在針對(duì)實(shí)現(xiàn)比較復(fù)雜程序的情況下,采用的是自上而下的方法。將復(fù)雜的場(chǎng)景劃分為幾個(gè)部分,每一個(gè)部門(mén)再進(jìn)行針對(duì)性的細(xì)化,直到分解為比較好的解決方案為止。
  • 采用模塊化設(shè)計(jì)程序,并不是一開(kāi)始就逐條的編寫(xiě)程序代碼,而是首先用主程序、子程序等框架把軟件的主要結(jié)構(gòu)和流程描述出來(lái),以功能劃分的模塊為單位進(jìn)行程序設(shè)計(jì)。
  • 利用函數(shù),不僅可以實(shí)現(xiàn)程序的模塊化,使得程序設(shè)計(jì)更加簡(jiǎn)單和直觀,從而提高了程序的易讀性和可維護(hù)性,而且還可以把程序中經(jīng)常用到的一些計(jì)算或操作編寫(xiě)成通用函數(shù),以供隨時(shí)調(diào)用。

該章節(jié)模擬一個(gè)水果倉(cāng)庫(kù)管理程序。在前面章節(jié)中,程序的各項(xiàng)功能代碼全部集中在一個(gè)代碼段中,程序的結(jié)構(gòu)不清晰。該章節(jié)使用函數(shù)來(lái)實(shí)現(xiàn)程序,采用模塊化的程序設(shè)計(jì)方法:

  • 劃分 水果倉(cāng)庫(kù) 程序的功能模塊,使用函數(shù)實(shí)現(xiàn)相應(yīng)的功能
  • 首先實(shí)現(xiàn)整體框架,然后再細(xì)化每個(gè)功能細(xì)節(jié)
  • 最終的程序由多個(gè)函數(shù)構(gòu)成,每個(gè)函數(shù)實(shí)現(xiàn)一個(gè)單一的功能,整個(gè)程序的結(jié)構(gòu)清晰

水果倉(cāng)庫(kù)功能簡(jiǎn)介

編寫(xiě)程序 fruits_warehouse 模擬 水果倉(cāng)庫(kù) 的一個(gè)簡(jiǎn)單管理系統(tǒng),水果倉(cāng)庫(kù) 包含若干水果,每種水果包括:名稱、重量、日期 3 項(xiàng)內(nèi)容。程序提供 4 項(xiàng)基本功能:

  • 添加水果: 用戶輸入水果的名稱、重量、日期信息,將信息保存在一個(gè)列表中
  • 列出當(dāng)前所有水果: 打印輸出當(dāng)前所有水果的信息
  • 查詢水果: 用戶輸入水果的名稱,打印輸出該水果的信息
  • 刪除水果: 用戶輸入水果的名稱,刪除該水果的信息

通過(guò)命令行界面實(shí)現(xiàn)以上功能,程序 fruits_warehouse 運(yùn)行時(shí)首先打印一個(gè)菜單,如下所示:

1: 添加水果信息
2: 顯示所有水果
3: 查詢水果信息
4: 刪除水果信息
5: 退出
請(qǐng)根據(jù)提示的數(shù)字 1-5 輸入要執(zhí)行的操作:

所以我們定義一個(gè) 獲取選項(xiàng)的函數(shù),如下:

def get_option():
    print('1: 添加水果信息')
    print('2: 顯示所有水果')
    print('3: 查詢水果信息')
    print('4: 刪除水果信息')
    print('5: 退出')
    option = input('請(qǐng)根據(jù)提示輸入要執(zhí)行的操作: 數(shù)字 1-5 ')
    return option


get_option()

# >>> 執(zhí)行結(jié)果如下:
# >>> 1: 添加水果信息
# >>> 2: 顯示所有水果
# >>> 3: 查詢水果信息
# >>> 4: 刪除水果信息
# >>> 5: 退出
# >>> 請(qǐng)根據(jù)提示的數(shù)字 1-5 輸入要執(zhí)行的操作: 

主功能實(shí)現(xiàn)與程序入口

總共有 5 個(gè)選項(xiàng),用戶輸入對(duì)應(yīng)的數(shù)字選擇相應(yīng)的功能,如下表所示:

數(shù)字選項(xiàng)對(duì)應(yīng)功能
1 : add_fruit添加水果信息
2:search_all_fruits列出當(dāng)前所有水果信息
3:query_fruit查詢水果信息
4:del_fruit刪除水果信息
5:quit退出

編寫(xiě)對(duì)應(yīng)的函數(shù),這里我們先寫(xiě)出函數(shù)的定義,暫時(shí)使用 pass 占位,代碼如下

def add_fruit():			# 添加水果信息
    pass


def search_all_fruits():	# 列出當(dāng)前所有水果信息
    pass


def query_fruit():			# 查詢水果信息
    pass


def del_fruit():			# 刪除水果信息
    pass


def main():					# 主程入口
    pass

接下來(lái)我們就實(shí)現(xiàn)以下 主程入口與獲取用戶的輸入

fruits =[] 					# 創(chuàng)建一個(gè)空列表 fruits,fruits 記錄所有水果的信息


def get_option():			# 獲取用戶輸入
    print('1: 添加水果信息')
    print('2: 顯示所有水果')
    print('3: 查詢水果信息')
    print('4: 刪除水果信息')
    print('5: 退出')
    option = input('請(qǐng)根據(jù)提示輸入要執(zhí)行的操作: 數(shù)字 1-5 ')
    return option


def add_fruit():			# 添加水果信息
    pass


def search_all_fruits():	# 列出當(dāng)前所有水果信息
    pass


def query_fruit():			# 查詢水果信息
    pass


def del_fruit():			# 刪除水果信息
    pass


def main():					# 主程入口
    while True:
        option = get_option()

        if option == '1':
            add_fruit()
        elif option == '2':
            search_all_fruits()
        elif option == '3':
            query_fruit()
        elif option == '4':
            ddel_fruit()
        elif option == '5':
            break
        else:
            print('輸入錯(cuò)誤!請(qǐng)重新輸入!')
            
main()

實(shí)現(xiàn)添加功能

def add_fruit():                # 添加水果信息
    name = input('name: ')
    weight = input('weight: ')
    date = input('date: ')
    fruit = {'name': name, 'weight': weight, 'date': date}
    fruits.append(fruit)

實(shí)現(xiàn)列出所有信息功能

def search_all_fruits():        # 列出當(dāng)前所有水果信息
    if len(fruits) == 0:
        print('**************')
        print('當(dāng)前倉(cāng)庫(kù)沒(méi)有水果')
        print('**************')
    else:
        for fruit in fruits:
            print(f'%s,%s,%s' % (fruit['name'], fruit['weight'], fruit['date']))

實(shí)現(xiàn)查詢信息功能

def query_fruit():              # 查詢水果信息
    name = input('name: ')
    if len(fruits) == 0:
        print('***************')
        print('當(dāng)前倉(cāng)庫(kù)沒(méi)有水果')
        print('***************')
    else:
        for fruit in fruits:
            if fruit['name'] == name:
                print(f'%s,%s,%s' % (fruit['name'], fruit['weight'], fruit['date']))

實(shí)現(xiàn)刪除信息功能

def del_fruit():                # 刪除水果信息
    name = input('name: ')
    if len(fruits) == 0:
        print('***************')
        print('當(dāng)前倉(cāng)庫(kù)沒(méi)有水果')
        print('***************')
    else:
        for fruit in fruits:
            if fruit['name'] == name:
                fruits.remove(fruit)
                break

完整程序如下

注意:這個(gè)完整程序的功能其實(shí)并不算完整,只能說(shuō)是實(shí)現(xiàn)了一個(gè)基礎(chǔ)功能;比如一個(gè)場(chǎng)景,當(dāng)我們要查詢、刪除的水果并不在 fruits 列表 的時(shí)候,這里并沒(méi)有做校驗(yàn),只是校驗(yàn)了當(dāng)前水果列表是否存在水果(長(zhǎng)度判斷)。

所以大家可以自己動(dòng)手完善一下。

# coding:utf-8

"""
    @Author:Neo
    @Date:2020/1/14
    @Filename:fruits_warehouse.py
    @Software:Pycharm
"""


fruits = []                     # 創(chuàng)建一個(gè)空列表 fruits,fruits 記錄所有水果的信息


def get_option():               # 獲取用戶輸入
    print('1: 添加水果信息')
    print('2: 顯示所有水果')
    print('3: 查詢水果信息')
    print('4: 刪除水果信息')
    print('5: 退出')
    option = input('請(qǐng)根據(jù)提示 數(shù)字 1-5 輸入要執(zhí)行的操作: ')
    return option


def add_fruit():                # 添加水果信息
    name = input('name: ')
    weight = input('weight: ')
    date = input('date: ')
    fruit = {'name': name, 'weight': weight, 'date': date}
    fruits.append(fruit)
    print(fruits)


def search_all_fruits():        # 列出當(dāng)前所有水果信息
    if len(fruits) == 0:
        print('              ')
        print('**************')
        print('當(dāng)前倉(cāng)庫(kù)沒(méi)有水果')
        print('**************')
        print('              ')
    else:
        for fruit in fruits:
            print(f'%s,%s,%s' % (fruit['name'], fruit['weight'], fruit['date']))



def query_fruit():              # 查詢水果信息
    name = input('name: ')
    if len(fruits) == 0:
        print('              ')
        print('**************')
        print('當(dāng)前倉(cāng)庫(kù)沒(méi)有水果')
        print('**************')
        print('              ')
    else:
        for fruit in fruits:
            if fruit['name'] == name:
                print(f'%s,%s,%s' % (fruit['name'], fruit['weight'], fruit['date']))


def del_fruit():                # 刪除水果信息
    name = input('name: ')
    if len(fruits) == 0:
        print('              ')
        print('**************')
        print('當(dāng)前倉(cāng)庫(kù)沒(méi)有水果')
        print('**************')
        print('              ')
    else:
        for fruit in fruits:
            if fruit['name'] == name:
                fruits.remove(fruit)
                break


def main():  # 主程入口
    while True:
        option = get_option()

        if option == '1':
            add_fruit()
        elif option == '2':
            search_all_fruits()
        elif option == '3':
            query_fruit()
        elif option == '4':
            del_fruit()
        elif option == '5':
            break
        else:
            print('輸入錯(cuò)誤!請(qǐng)重新輸入!')


main()

以上就是Python學(xué)習(xí)之模塊化程序設(shè)計(jì)示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Python模塊化程序設(shè)計(jì)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

德钦县| 永清县| 五寨县| 旌德县| 鲁甸县| 辽源市| 吕梁市| 临澧县| 蒙城县| 博乐市| 肃宁县| 安泽县| 七台河市| 凉城县| 平阳县| 沙田区| 日土县| 信宜市| 密山市| 亚东县| 潜山县| 堆龙德庆县| 潮州市| 房山区| 资溪县| 沙田区| 宁强县| 石楼县| 突泉县| 岢岚县| 台东县| 平乡县| 松桃| 灯塔市| 邵阳县| 中牟县| 鄢陵县| 临高县| 贵港市| 高唐县| 淳化县|