2. 添加班级功能的实现

实现方法

以下只显示修改内容,请自行比对修改部分。

新增 tools 模块:tools.py 用于各个模块都使用的工具函数。

def get_display_width(s):
    '''
    返回字符串s的显示宽度
    如:
    'abc' -->3
    '中文' --> 4
    'ABC中文' --> 7
    '''
    return sum([1 if ord(ch) < 128 else 2 for ch in s])
    # display_width = 0
    # for ch in s:
    #     if ord(ch) < 128:
    #         display_width += 1
    #     else:
    #         display_width += 2
    # return  display_width
from class_room import ClassRoom
import tools

class_rooms = []  # 用于存放班级对象

def add_class_room():
    '''添加班级'''
    class_name = input('请输入班级名称: ')
    # 判断 class_name 不能超过 10 个显示字符的宽度
    if tools.get_display_width(class_name) <= 10:
        cr = ClassRoom(class_name)
        class_rooms.append(cr)
        print('添加班级', class_name, '成功!')
    else:
        print('添加班级失败,班级名太长!')
    import time
    time.sleep(2)

def show_school_menu():
    print('        xxxx小学信息管理系统')
    print('+-----------------------------------+')
    print('| 1) 添加班级                       |')
    ...

def class_manager():
    '''此函数用来管理班级数据'''
    while True:
        show_school_menu()
        sel = input('请选择:')
        match sel:
            case '1':  # 1) 添加班级
                add_class_room()
            case '2':  # 2) 删除班级
                pass
...