的Python:错误运行如果循环
问题描述:
我有这样的Python:错误运行如果循环
ten=(1,7,8,10)
ten=np.array(ten)
nine=(3,6,9)
nine=np.array(nine)
lat=range(1,11)
p_new1=[]
H2O_vmr_new1=[]
level=range(1,91)
row=range(0,6)
for j in lat:
if j in ten:
print j
for a in level:
if((H2O_vmr[a]-H2O_vmr[a+1])/(p[a]-p[a+1]))-((H2O_vmr[a-1]-
H2O_vmr[a])/(p[a-1]-p[a]))>.000001:
p_new1.append(p[a])
H2O_vmr_new1.append(H2O_vmr[a])
elif j in nine:
for a in level:
if((H2O_vmr[a]-H2O_vmr[a+1])/(p[a]-p[a+1]))-((H2O_vmr[a-1]-
H2O_vmr[a])/(p[a-1]-p[a]))>.000001:
p_new1.append(p[a])
H2O_vmr_new1.append(H2O_vmr[a])
只有第一个代码,如果环路是工作太只需要“J”(我想打印“J”)的最后的值.second循环-'elif'(我尝试'如果'而不是'elif'也)甚至不工作。我真的是新来的this.Any帮助将不胜感激。
注:我没有发布完整的代码,因为它很长。我只发布了显示错误的部分。
答
您的for循环工作,那里没有问题。你还没有发布H2O_vmr
和p
的值,所以我不知道你想要做什么。
如果我要做一个假设,我会说你想要访问循环索引,这可能是问题所在。
H2O_vmr[a+1]
我假设你在尝试访问下一个索引使用a+1
并在试图访问一个索引使用a-1
。这可能是混淆的原因。 a+1
未访问下一个索引,而是取值为a
,并将其加1。为了得到该指数在for循环中,您可以:
for idx, val in enumerate(ints):
print(idx, val)
Accessing the index in Python 'for' loops
让我知道,如果我的假设是正确的,否则您提供配方中所使用的两个数组的内容。
证明你的for循环的工作原理:
import numpy as np
ten=(1,7,8,10)
ten=np.array(ten)
nine=(3,6,9)
nine=np.array(nine)
lat=range(1,11)
p_new1=[]
H2O_vmr_new1=[]
level=range(1,91)
row=range(0,6)
for j in lat:
if j in ten:
print("j in ten: ", end="")
print(j)
elif j in nine:
print("j in nine: ", end="")
print(j)
对于上述结果是:
j in ten: 1
j in nine: 3
j in nine: 6
j in ten: 7
j in ten: 8
j in nine: 9
j in ten: 10
是什么'level'?你在哪里定义它?您的代码不完整,无法帮助您。 –
什么是关卡的内容? –
“只有第一个循环正在工作,它也只需要'j'的最后一个值”你是什么意思? – njzk2