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

Python生成'Hello'字符数平均值计算遇'int'不可迭代错误求助

解决计算随机字符生成次数平均值时的TypeError问题

错误原因

statistics.mean() 函数要求传入可迭代对象(如列表、元组),但你在循环中直接传入了单个整数 attempts——整数不属于可迭代类型,因此触发了 TypeError: 'int' object is not iterable。

修正后的代码

把函数定义移到循环外部(无需每次循环重复定义),用列表存储10次运行的结果,最后对列表求平均值:

import string
import random
import statistics

def task8(word):
    word = word.lower()
    x = 0
    attempts = 0
    while x < len(word):
        attempts += 1
        z = random.choice(string.ascii_lowercase)
        if z == word[x]:
            x += 1
    return attempts

# 存储10次生成的字符数结果
attempts_list = []
for _ in range(10):
    current_attempts = task8("hello")
    attempts_list.append(current_attempts)
    print(current_attempts)

# 计算并输出平均值
average = statistics.mean(attempts_list)
print(f"平均值: {average}")

关键优化点

  • 将task8函数移到循环外,避免不必要的重复定义,提升代码效率。
  • 用attempts_list收集每次的结果,确保statistics.mean()能接收到符合要求的可迭代参数。
  • 循环内变量名改为current_attempts,避免和列表名混淆,提升代码可读性。

内容的提问来源于stack exchange,提问作者Jamie Turner

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 18:50:30