0

嘿,这是我的代码(我知道还有细节可以工作),但到目前为止我有一个主要问题,我希望根据 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
4

1 回答 1

0

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)

于 2020-07-15T22:26:21.293 回答