3. 列出所有班级功能的实现

实现方法

def get_display_width(s):
    return sum([1 if ord(ch) < 128 else 2 for ch in s])


def center_to_display_width(s, width):
    '''将字符串s的左右两端添加空格,使其达到width的显示宽度!
    s = 'ABC中文', width = 10
    返回:' ABC中文  '
    '''
    s_width = get_display_width(s)  # 得到当前字符的显示宽度
    # 计算需要补充的空格数
    fill_blank_count = width - s_width
    return s.center(len(s) + fill_blank_count)

from class_room import ClassRoom
import tools

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

...

def list_all_class_room():
    print('+------+------------+')
    print('| 序号 |  班级名称  |')
    print('+------+------------+')
    number = 1
    for cr in class_rooms:
        print('| %4d | %s |' % (number, tools.center_to_display_width(cr.class_name, 10)))
        print('+------+------------+')
        number += 1

...

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