Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 获取for循环中每个迭代的打印值的简单问题?_Python_Loops - Fatal编程技术网

Python 获取for循环中每个迭代的打印值的简单问题?

Python 获取for循环中每个迭代的打印值的简单问题?,python,loops,Python,Loops,我的代码按我希望的那样工作,但有一个小问题:“print”行只显示第一次迭代(n=2)的Bn值,而不显示(n=5或20)的Bn值 在执行plt.show()行之前,执行打印行print('coverties[V]:','Bn:',Bn,'An:',An,'A0:',A0),因此在n=2时打印字符串,然后打开一个窗口。问题是,当此plt.show()方法仍在运行时,您无法在for循环中继续循环。如果尝试关闭打开的窗口,您将看到打印n=5的消息 如果要打印数组的完整结果,可以考虑将它们存储在变量中,

我的代码按我希望的那样工作,但有一个小问题:“print”行只显示第一次迭代(n=2)的Bn值,而不显示(n=5或20)的Bn值

在执行
plt.show()
行之前,执行打印行
print('coverties[V]:','Bn:',Bn,'An:',An,'A0:',A0)
,因此在
n=2
时打印字符串,然后打开一个窗口。问题是,当此
plt.show()
方法仍在运行时,您无法在
for
循环中继续循环。如果尝试关闭打开的窗口,您将看到打印
n=5
的消息


如果要打印数组的完整结果,可以考虑将它们存储在变量中,并在循环结束后将其打印出来。或者你也可以找到另一种方法来实现

plt.show()

我复制了代码,它在jupyter中对我有效,正确打印每一行并绘制每一张图表
import numpy as np
from matplotlib import pyplot as plt
import scipy.integrate as integrate
from scipy.integrate import quad

#unique depending on the problem
y = lambda t: 3*t   
T = 4      #period
w = 2*np.pi/T #angular frequency
print('Angular Frequency [rad]:',w)
n_list = np.array([2,5,20])

#for loop for multiple n values:
for n in n_list:

    Bn = (2/T)*quad(lambda t: y(t)*np.sin(n*w*t), -T/2, T/2)[0]  #for odd functions  
    An = (2/T)*quad(lambda t: y(t)*np.cos(n*w*t), -T/2, T/2)[0]  #for even
    A0 = (1/T)*quad(lambda t: y(t), -T/2, T/2)[0]   #vertical shift

    y = lambda t: A0+An*np.cos(n*w*t)+Bn*np.sin(n*w*t) #total equation

    t = np.linspace(-6, 6)
    plt.plot(t,y(t))
    plt.title('n = %d'%n)
    print('Coefficients [V]:', 'Bn:',Bn, 'An:', An,'A0:', A0)
    plt.show()