给定一组二进制数字，将它们转换为相应的十进制数字，并计算它们的平均值。您需要编写一个带有转换和计算平均值的函数，并提供示例输入。


def binary_to_decimal(binary_list):
"""Convert a list of binary numbers to decimal and return their average."""
# TODO: write the code to convert binary to decimal and calculate the mean
binary_list = [101, 110, 111, 1001]
avg = binary_to_decimal(binary_list)
print("The average of the binary numbers is:", avg)
def binary_to_decimal(binary_list):  # 定义函数，接受一个二进制数列表作为参数
    decimal_list = []  # 创建一个空列表，用于存储所有数字的十进制表示
    for binary in binary_list:  # 对于二进制列表中的每个数字
        decimal = 0  # 创建一个变量，用于存储该数字的十进制表示
        power = 0  # 创建一个指数变量，用于将每个位权乘以2的正确幂
        while binary > 0:  # 当二进制数仍然有位时循环
            decimal += (binary % 10) * pow(2, power)  # 获取二进制数的最右位，将其转换为十进制，然后将其加到目前的十进制数中
            power += 1  # 指数增加1
            binary //= 10  # 除以10会移除最右位，将其保留给下一轮
        decimal_list.append(decimal)  # 添加新的十进制数到列表中
    avg = sum(decimal_list) / len(decimal_list)  # 计算平均值，sum函数用于得到列表中所有十进制数的总和，len函数用于得到列表的长度
    return avg
    
    
binary_list = [101, 110, 111, 1001]  # 示例输入
avg = binary_to_decimal(binary_list)  # 调用函数并获得平均值
print("The average of the binary numbers is:", avg)  # 输出结果