当前位置:首页>python>python小程序之Python案例

python小程序之Python案例

  • 2026-08-22 13:13:29
python小程序之Python案例

3.25

Python案例

我们将创建一个简单的Python案例,使用面向对象编程和分模块组织代码。

1

需求

结合函数、面向对象编程和分页设计的Python案例,包含主文件和其他模块文件。

2

文件结构

project/

├── main.py               # 主程序

├── models.py           # 数据模型

├── pagination.py      # 分页功能

└── utils.py                # 工具函数

3

代码实现

(1)models.py(数据模型类)

classProduct:    def __init__(self, id, name, price):        self.id = id        self.name = name        self.price = price    def display(self):        return f"{self.id}:{self.name} - ${self.price:2f}"class ProductInventory:    def __init__(self):        self.products = []    def add_product(self, product):        self.products.append(product)    def get_all_products(self):        return self.products

(2)pagination.py(分页功能类)

classPaginator:    def __init__(self, items, per_page=5):        self.items = items        self.per_page = per_page        self.total_pages = (len(items) + per_page - 1)  // per_page    def get_page(self, page_num):        if page_num < 1or page_num > self.total_pages:            return []        start = (page_num - 1) * self.per_page        end = start + self.per_page        return self.items[start:end]    def display_page_info(self, page_num):        return f"Page {page_num}/{self.total_pages} | Items: {len(self.get_page(page_num))}/{len(self,items)}"

(3)utils.py(工具函数)

def generate_sample_products(sount=23):    """        生成示例产品数据    """    from models import Product    return [Product(i, f"Product{i}",10.99 + i)for i in range(1, sount+1)]def display_menu():    """        显示主菜单    """    print("\n=== Product Inventory System ===")    print("1. View products")    print("2. Exit")    returninput("Enter your choice:")

(4)main.py(主程序)

from models import ProductInventoryfrom pagination import Paginatorfrom utils import generate_sample_products, display_menudef main():    # 初始化库存    inventory = ProductInventory()    for product in generate_sample_products():        inventory.add_product(product)    # 创建分页器    paginator = Paginator(inventory.get_all_products())    current_page = 1    while True:        choice = display_menu()        if choice == '1':            # 显示当前页产品            print(f"\n{'-'*30}")            print(paginator.display_page_info(current_page))            print("-"*30)            for product in paginator.get_page(current_page):                print(product.display())            # 分页导航            print("\n[N]ext page | [P]revious page | [M]enu")            nav = input("Choose action:").lower()            if nav == 'n'and current_page < paginator.total_pages:                current_page += 1            elif nav == 'p'and current_page > 1:                current_page -= 1        elif choice == '2':            print("Exiting program...")            break        else:            print("Invalid choice. Please try again.")if __name__ == "__main__":    main()

4

功能说明

(1)面向对象编程:

Product类表示单个产品

ProductInventory类管理产品集合

Paginator类实现分页逻辑

(2)函数封装:

generate_sample_products()生成测试数据

display_menu()显示用户界面

main()函数组织主流程

(3)分页功能:

每页显示5个产品

支持前后翻页导航

显示当前页码和总数

(4)模块化设计:

主程序:main.py

数据模型:models.py

分页逻辑:pagination.py

工具函数:utils.py

这个案例演示了:

面向对象编程的类设计

函数封装和模块化

分页功能的实现

多文件项目组织

用户交互界面

5

运行结果

今日学习完毕,课后作业:

大家可以跟进上面的小程序,利用前面所学的东西,继续优化改进。希望大家能通过这些自制小程序,对python越来越喜欢。明天开始,我们继续学习新的python知识。

最新文章

随机文章