np.linspace 在 if 语句中 python
np.linspace in if statement python
嘿,这是我的代码(我知道还有工作细节),但到目前为止我有一个主要问题,我希望根据 2 个输入(u 和 horario_emision)变量 'estabilidad_atm' 得到一个新值,当第一个输入不在 linspace() 范围内时它会起作用,所以我猜我没有正确应用它们。我不能使用 range() 函数,因为我需要浮点数。
我很高兴有人指出我哪里做错了,哪里做错了。谢谢!
import numpy as np
estabilidad_atm = ''
u = float(input('ingrese velocidad de viento de supervicie'))
horario_emision = input('ingrese si emisiones es de dia(1) o de noche (2)')
if horario_emision == '1':
radiacion = float(input('ingrese la radiacion solar (Wm2)'))
if u < 2 and radiacion >= 925:
estabilidad_atm += 'A'
elif u < 2 and radiacion in range(675, 925):
estabilidad_atm += 'A'
elif u < 2 and radiacion in range(176, 675):
estabilidad_atm += 'B'
elif u < 2 and radiacion <= 175:
estabilidad_atm += 'D'
elif u in np.linspace(2, 3) and radiacion >= 925:
estabilidad_atm += 'A'
elif u in np.linspace(2, 3) and radiacion in range(675, 925):
estabilidad_atm += 'B'
elif u in np.linspace(2, 3) and radiacion in range(176, 675):
estabilidad_atm += 'C'
elif u in np.linspace(2, 3) and radiacion <= 175:
estabilidad_atm += 'D'
elif u in np.linspace(3.1, 5) and radiacion >= 925:
estabilidad_atm += 'A'
elif u in np.linspace(3.1, 5) and radiacion in np.linspace(675, 925):
estabilidad_atm += 'B'
elif u in np.linspace(3.1, 5) and radiacion in np.linspace(176, 675):
estabilidad_atm += 'C'
elif u in np.linspace(3.1, 5) and radiacion <= 175:
estabilidad_atm += 'D'
elif u in np.linspace(5.1, 6) and radiacion >= 925:
estabilidad_atm += 'A'
elif u in np.linspace(5.1, 6) and radiacion in range(675, 925):
estabilidad_atm += 'B'
elif u in np.linspace(5.1, 6) and radiacion in range(176, 675):
estabilidad_atm += 'C'
elif u in np.linspace(5.1, 6) and radiacion <= 175:
estabilidad_atm += 'D'
elif u > 6 and radiacion >= 925:
estabilidad_atm += 'A'
elif u > 6 and radiacion in range(675, 925):
estabilidad_atm += 'B'
elif u > 6 and radiacion in range(176, 675):
estabilidad_atm += 'C'
elif u > 6 and radiacion <= 175:
estabilidad_atm += 'D'
elif horario_emision == '2':
condicion_noche = input('ingrese nivel de nubosidad de noche: menor a 4/8 de covertura(1) o mayor a 4/8 de covertura(2)')
if u < 2 and condicion_noche == '1' or condicion_noche == '2':
estabilidad_atm += 'F'
elif u in np.linspace(2, 3) and condicion_noche == '1':
estabilidad_atm += 'E'
elif u in np.linspace(2,3) and condicion_noche== '2':
estabilidad_atm += 'F'
elif u in np.linspace(3.1, 5) and condicion_noche == '1':
estabilidad_atm += 'D'
elif u in np.linspace(3.1, 5) and condicion_noche == '2':
estabilidad_atm += 'E'
elif u > 5 and condicion_noche == '2':
estabilidad_atm += 'D'
estabilidad_atm
radiacion in range(675, 925)
不检查 radiacion
是否在 675 和 925 之间。它检查 radiacion
是否是整数 675、676、... 924 之一(但不是 925)。因此,例如,670.5 不是 in range(675, 925)
。你需要的是一个明确的不等式检查:675 <= radiacion <= 925
。与 linspace
相同:3.1 <= u <= 5
,而不是 u in np.linspace(3.1, 5)
。
嘿,这是我的代码(我知道还有工作细节),但到目前为止我有一个主要问题,我希望根据 2 个输入(u 和 horario_emision)变量 'estabilidad_atm' 得到一个新值,当第一个输入不在 linspace() 范围内时它会起作用,所以我猜我没有正确应用它们。我不能使用 range() 函数,因为我需要浮点数。
我很高兴有人指出我哪里做错了,哪里做错了。谢谢!
import numpy as np
estabilidad_atm = ''
u = float(input('ingrese velocidad de viento de supervicie'))
horario_emision = input('ingrese si emisiones es de dia(1) o de noche (2)')
if horario_emision == '1':
radiacion = float(input('ingrese la radiacion solar (Wm2)'))
if u < 2 and radiacion >= 925:
estabilidad_atm += 'A'
elif u < 2 and radiacion in range(675, 925):
estabilidad_atm += 'A'
elif u < 2 and radiacion in range(176, 675):
estabilidad_atm += 'B'
elif u < 2 and radiacion <= 175:
estabilidad_atm += 'D'
elif u in np.linspace(2, 3) and radiacion >= 925:
estabilidad_atm += 'A'
elif u in np.linspace(2, 3) and radiacion in range(675, 925):
estabilidad_atm += 'B'
elif u in np.linspace(2, 3) and radiacion in range(176, 675):
estabilidad_atm += 'C'
elif u in np.linspace(2, 3) and radiacion <= 175:
estabilidad_atm += 'D'
elif u in np.linspace(3.1, 5) and radiacion >= 925:
estabilidad_atm += 'A'
elif u in np.linspace(3.1, 5) and radiacion in np.linspace(675, 925):
estabilidad_atm += 'B'
elif u in np.linspace(3.1, 5) and radiacion in np.linspace(176, 675):
estabilidad_atm += 'C'
elif u in np.linspace(3.1, 5) and radiacion <= 175:
estabilidad_atm += 'D'
elif u in np.linspace(5.1, 6) and radiacion >= 925:
estabilidad_atm += 'A'
elif u in np.linspace(5.1, 6) and radiacion in range(675, 925):
estabilidad_atm += 'B'
elif u in np.linspace(5.1, 6) and radiacion in range(176, 675):
estabilidad_atm += 'C'
elif u in np.linspace(5.1, 6) and radiacion <= 175:
estabilidad_atm += 'D'
elif u > 6 and radiacion >= 925:
estabilidad_atm += 'A'
elif u > 6 and radiacion in range(675, 925):
estabilidad_atm += 'B'
elif u > 6 and radiacion in range(176, 675):
estabilidad_atm += 'C'
elif u > 6 and radiacion <= 175:
estabilidad_atm += 'D'
elif horario_emision == '2':
condicion_noche = input('ingrese nivel de nubosidad de noche: menor a 4/8 de covertura(1) o mayor a 4/8 de covertura(2)')
if u < 2 and condicion_noche == '1' or condicion_noche == '2':
estabilidad_atm += 'F'
elif u in np.linspace(2, 3) and condicion_noche == '1':
estabilidad_atm += 'E'
elif u in np.linspace(2,3) and condicion_noche== '2':
estabilidad_atm += 'F'
elif u in np.linspace(3.1, 5) and condicion_noche == '1':
estabilidad_atm += 'D'
elif u in np.linspace(3.1, 5) and condicion_noche == '2':
estabilidad_atm += 'E'
elif u > 5 and condicion_noche == '2':
estabilidad_atm += 'D'
estabilidad_atm
radiacion in range(675, 925)
不检查 radiacion
是否在 675 和 925 之间。它检查 radiacion
是否是整数 675、676、... 924 之一(但不是 925)。因此,例如,670.5 不是 in range(675, 925)
。你需要的是一个明确的不等式检查:675 <= radiacion <= 925
。与 linspace
相同:3.1 <= u <= 5
,而不是 u in np.linspace(3.1, 5)
。