我正在尝试编写一段代码,以这样的方式计算波长值:在n = 1时,它检查k = 2、3、4、5和6的值。我需要这样做直到n = 4,从n + 1开始有5个连续整数k。IE,如果n = 3,请检查k = 4、5、6、7和8。因此总共有20个波长。我目前拥有的代码可以打印出20个波长,第一个波长对于每个n都是正确的,但是接下来的4个波长是不正确的。我不确定如何解决此问题,请帮助
for n in range (1, 5):
for k in range (2, 7):
k = n + 1
RH = 1.09678e-2
waveLength = 1 / (R_H * (1/n**2 - 1/k**2))
print(waveLength)
答案 0 :(得分:2)
您的内部循环每次都使用相同的k = n + 1
值,而不使用来自k
的{{1}}的值。
内部循环的范围必须基于range(2, 7)
,而不是固定数字。
n
另一种方法是在内部循环中使用for n in range(1, 5):
for k in range(n+1, n+6):
RH = 1.09678e-2
waveLength = 1 / (R_H * (1/n**2 - 1/k**2))
print(waveLength)
,并添加两个值:
range(1, 6)