You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python基于if-else条件根据平均值改变数字颜色问题求助

问题分析与修复:根据整体平均值设置数字颜色

你的代码有两个核心问题导致颜色“随机变化”:

  • 实时计算临时平均值而非最终整体平均值:你在每生成一个数字后就立刻计算当前列表的平均值并判断颜色,这个平均值是逐步累加的临时值,不是10个数字的最终平均,每个数字的判断依据都不一样。
  • 平均值计算逻辑错误:max_student = max(1, i)的写法有问题,i从0开始,当i=1(第二个数字)时,max_student是1,此时sum是前两个数的和,除以1得到的是总和而非平均值,直接导致前几个数字的判断完全偏离预期。

修复后的代码

import random
from termcolor import cprint

my_list = []
# 先生成所有10个随机数字
for _ in range(10):
    numbers = random.randint(1, 10)
    my_list.append(numbers)

# 计算10个数字的整体平均值
total_sum = sum(my_list)
average = total_sum / len(my_list)

# 根据整体平均值逐个设置数字颜色
for num in my_list:
    if num <= average:
        cprint(num, "green")
    else:
        cprint(num, "red")

print("这是平均值:", round(average, 2))

关键改动说明

  • 把数字生成、计算整体平均、颜色判断拆成三个独立步骤,确保所有数字都用同一个最终平均值作为判断标准。
  • 用len(my_list)代替错误的max_student,保证平均值计算准确(列表长度就是数字的总个数)。
  • 简化循环变量为_(不需要索引时用下划线表示占位),代码更简洁清晰。

内容的提问来源于stack exchange,提问作者ander san josé

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 18:45:20