一遍又一遍地循环执行相同的计算,每次都更改变量

时间:2019-03-06 09:42:06

标签: python

我想用几个x值运行此代码,并将所有输出显示在列表中。第一次运行x应该为1,下一次循环x应该为2,然后是3,依此类推...在我的代码中是否有实现此目标的简单方法?

编辑:添加后,循环现在可以正常工作

对于x范围为(1,max_value)的

有没有办法列出每个循环的自由度输出列表?

https://imgur.com/eQxHzHZ

import numpy as np 
import math
from scipy.stats import skew, kurtosis, kurtosistest
import matplotlib.pyplot as plt
from scipy.stats import norm,t
import pandas as pd


data = pd.read_excel(r"filename.xlsx",sheet_name,skiprows=x+5,usecols="C")
ret = np.array(data.values)



from scipy.stats import skew, kurtosis
X = np.random.randn(10000000)
print(skew(X))
print(kurtosis(X, fisher=False))

# N(x; mu, sig) best fit (finding: mu, stdev)
mu_norm, sig_norm = norm.fit(ret)
dx = 0.0001  # resolution
x = np.arange(-0.1, 0.1, dx)
pdf = norm.pdf(x, mu_norm, sig_norm)
print("Integral norm.pdf(x; mu_norm, sig_norm) dx = %.2f" % (np.sum(pdf*dx)))
print("Sample mean  = %.5f" % mu_norm)
print("Sample stdev = %.5f" % sig_norm)
print()

df = pd.DataFrame(ret)

# Student t best fit (finding: nu)
x = t.fit(ret)
nu, mu_t, sig_t = x
pdf2 = t.pdf(x, nu, mu_t, sig_t)
print("Integral t.pdf(x; mu, sig) dx = %.2f" % (np.sum(pdf2*dx)))
print("nu = %.2f" % nu)
print()

2 个答案:

答案 0 :(得分:0)

将整个代码放入for循环中,该循环每次递增x

for x in range(1, max_value):
    #do stuff
    #add value to a list
print(your_list)

旁注:也许在所有脚本开始之前在开始时添加所有导入

编辑x2 :由于x被覆盖,因此

my_list = []
for my_var in range(1, max_value):
    x = my_var
    #do stuff with x
    #add value to a list
    my_list.append(x)
print(my_list)

答案 1 :(得分:0)

您可以使用for循环:

for x in range(n):
    f(x)

将在x = 0,x = 1到x = n-1的情况下调用x上的函数f。