python - 我怎样才能让我的代码重复一个动作?我使用了“for i in range(x):”,但它似乎不起作用
问题描述
import random
import statistics
import math
numbers = [508, 507, 600, 600, 610, 610, 590, 601, 600, 600, 600, 610, 610, 610, 600, 600, 600, 620, 620, 620, 610, 620,
620, 620, 620, 620, 630, 610, 630, 630, 620, 630, 630, 620, 600, 610, 620, 620, 600, 590, 600, 600, 630, 580,
580, 570, 580, 590, 560, 580, 580, 570, 580, 580, 580, 580, 580, 570, 580, 580, 560, 570, 560, 580, 570, 580,
560, 580, 540, 560, 550, 550, 580, 550, 550, 550, 560, 540, 570, 580, 580, 570, 570, 560, 550, 570, 540, 550,
560]
numbers2 = [5.08, 5.07, 6, 6, 6.1, 6.1, 5.9, 6.01, 6, 6, 6, 6.1, 6.1, 6.1, 6, 6, 6, 6.2, 6.2, 6.2, 6.1, 6.2, 6.2, 6.2,
6.2, 6.2, 6.3, 6.1, 6.3, 6.3, 6.2, 6.3, 6.3, 6.2, 6, 6.1, 6.2, 6.2, 6, 5.9, 6, 6, 6.3, 5.8, 5.8, 5.7, 5.8,
5.9, 5.6, 5.8, 5.8, 5.7, 5.8, 5.8, 5.8, 5.8, 5.8, 5.7, 5.8, 5.8, 5.6, 5.7, 5.6, 5.8, 5.7, 5.8, 5.6, 5.8,
5.4, 5.6, 5.5, 5.5, 5.8, 5.5, 5.5, 5.5, 5.6, 5.4, 5.7, 5.8, 5.8, 5.7, 5.7, 5.6, 5.5, 5.7, 5.4, 5.5, 5.6]
for i in range(100):
mu = statistics.mean(numbers2)
c = 0
sd = []
for i in range(len(numbers2)):
b = (numbers2[c] - mu) ** 2
sd.append(b)
c += 1
s2 = sum(sd)
s = math.sqrt(s2)
sample = []
for i in range(20):
sample.append(random.choice(numbers))
mus = sum(sample)
mus = mus / 100
mus = mus / 20
t = (mus - mu) / (s / math.sqrt(len(numbers)))
tvalues = []
tvalues.append(t)
print(tvalues)
meantv = sum(tvalues) / len(tvalues)
print(meantv)
我错过了什么?我使用的第一个for i in range(100):
似乎没有重复代码......我错过了一个缺失的缩进,还是我不能一次重复这么多东西?(或者我是否可能以某种方式错过了指定要重复的内容?)
解决方案
尝试移出tvalues = []
循环。这样,您每次运行循环时都将该变量设置为一个空列表。
推荐阅读
- c++ - introsort 比合并排序(时间复杂度)更好吗?
- c - MPI 和变量覆盖?
- python - 熊猫中的 GroupBy 不使用聚合函数
- javascript - 如何找到用于与 USB 设备交互的功能
- r - 通过 Plotly 在 Shiny 应用程序中绘制的缺失数据
- plot - 如何在 Mathematica 中连续排列多个图?
- ansible - Update a boolean variable in Ansible upon a condition
- sql - VBA/Access INSERT into 将数字字符串作为数字传递的语句
- javascript - 将 PHP 数组转换为 JSON 对象以进行自动完成
- node.js - NodeJS - 无法附加客户端证书以使用 Mocha/Chai-Http 进行测试