from typing import Any, Tuple


def 取全部众数(元组数据: Tuple[Any, ...]):
    """返回元组中的全部众数。

    功能说明:
        - 这个函数用于返回元组中的全部众数。
        - 常用于从元组中读取某个成员、某一段数据，或者计算出一个统计结果。
        - 如果当前数据不适合处理，函数会返回约定好的结果，方便新手直接判断这次是否成功取到值。

    说明:
        - 返回所有出现次数并列最高的成员。
        - 返回顺序按成员首次出现顺序保留。

    Args:
        元组数据: 待统计的元组。

    Returns:
        成功时返回 ``(众数元组, True)``；失败时返回 ``((), False)``。
    """
    try:
        if not isinstance(元组数据, tuple) or not 元组数据:
            return (), False

        频率列表 = []
        for 元素 in 元组数据:
            已找到 = False
            for 项 in 频率列表:
                if 项[0] == 元素:
                    项[1] += 1
                    已找到 = True
                    break
            if not 已找到:
                频率列表.append([元素, 1])

        最大次数 = max(次数 for _, 次数 in 频率列表)
        结果 = tuple(元素 for 元素, 次数 in 频率列表 if 次数 == 最大次数)
        return 结果, True
    except Exception:
        return (), False


if __name__ == "__main__":
    print("===== 示例1：单一众数 =====")
    数据 = (1, 2, 2, 3, 2, 4)
    print("结果:", 取全部众数(数据))

    print("\n===== 示例2：多个并列众数 =====")
    数据 = ("a", "b", "a", "b", "c")
    print("结果:", 取全部众数(数据))

    print("\n===== 示例3：全部唯一时全部都是众数 =====")
    数据 = (1, 2, 3)
    print("结果:", 取全部众数(数据))

    print("\n===== 示例4：单成员元组 =====")
    数据 = ("唯一",)
    print("结果:", 取全部众数(数据))

    print("\n===== 示例5：空元组 =====")
    数据 = ()
    print("结果:", 取全部众数(数据))

    print("\n===== 示例6：应用场景-找出最常出现的异常码集合 =====")
    异常码 = ("E01", "E02", "E01", "E03", "E02", "E04")
    print("结果:", 取全部众数(异常码))



