Python循环中如何将值存入元组?求随机数均值报错求助
问题解决:生成6位随机数并存入元组计算均值
错误原因分析
你碰到的TypeError: 'tuple' object is not callable问题,核心原因有两个:
- 元组是不可变类型,不能用
tup()这种函数调用的语法去修改它,()是用来执行函数的,而tup是元组对象,不是函数。 - 你想用
tup()==(tup,x)添加元素的写法完全错误,元组不能直接修改,只能通过生成新元组的方式追加元素。 - 另外计算均值的代码不该放在循环里,得等6个随机数全部收集完成后再计算才合理。
修正后的代码
import random as r import statistics as s i = 1 tup = () while i <= 6: x = r.randrange(100000, 999999, 500) # 生成新元组并追加元素,重新赋值给原变量 tup = tup + (x,) print(x) i = i + 1 # 循环结束后计算并打印均值 y = s.mean(tup) print("均值为:", y)
额外优化建议
其实用列表收集元素更高效,因为列表是可变类型,用append()方法添加元素更方便,最后转成元组也很简单:
import random as r import statistics as s nums = [] # 用for循环替代while,无需手动维护计数器 for _ in range(6): x = r.randrange(100000, 999999, 500) nums.append(x) print(x) tup = tuple(nums) y = s.mean(tup) print("均值为:", y)
内容的提问来源于stack exchange,提问作者Vansh Raval
相关产品推荐
相关产品推荐

