关于平均值、最大值和最小值函数python的问题
请忽略未使用的模块 所以我试图从函数random_walk得到numbers的平均值,但我有几个问题关于平均值、最大值和最小值函数python的问题,python,Python,请忽略未使用的模块 所以我试图从函数random_walk得到numbers的平均值,但我有几个问题 首先,我应该在0,0网格上启动程序。我试图从提供的种子中找出100个步骤和50种不同风格的试验平均值。但是它不能正常工作,我也不知道为什么 您正在计算循环内从random_walk()返回的每个值的mean,超过之前的值。将循环更改为: import statistics as stat from statistics import mean from random import seed, c
首先,我应该在0,0网格上启动程序。我试图从提供的种子中找出100个步骤和50种不同风格的试验平均值。但是它不能正常工作,我也不知道为什么 您正在计算循环内从
random_walk()
返回的每个值的mean
,超过之前的值。将循环更改为:
import statistics as stat
from statistics import mean
from random import seed, choice
from math import hypot
import random
from turtle import *
import statistics
seed(20190101)
def random_walk(n):
x = 0
y = 0
for i in range(n):
step = random.choice(["N","S","E","W"])
if step == 'N':
y = y + 1
elif step == "S":
y = y - 1
elif step == "E":
x = x + 1
else:
x = x - 1
return (x,y)
for i in range(100):
walk = random_walk(50)
y = abs(walk[0]) + abs(walk[1])
x = statistics.mean(y)
print(x)
您运行主循环100次,但是除了最后一次,您放弃了每次迭代的结果。你所做的一切都是打印
统计数据。对于y
的最终值,平均值(y)
(我认为这会给你一个错误,因为y
不是一个合适的值)。您需要将值保存在列表中,然后使用列表作为参数调用mean
一次。
all_steps = []
for i in range(100):
walk = random_walk(50)
all_steps.append(abs(walk[0]) + abs(walk[1]))
steps_mean = statistics.mean(all_steps) #Only after the loop
print(steps_mean)