if语句python中的np.linspace

2024-09-24 12:30:06 发布

您现在位置:Python中文网/ 问答频道 /正文

嘿,这是我的代码(我知道还有一些细节需要处理),但到目前为止我有一个主要问题,我希望根据两个输入(u和horario_emission)变量'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

Tags: andininputnprangedeelifatm
1条回答
网友
1楼 · 发布于 2024-09-24 12:30:06

radiacion in range(675, 925)不检查radiacion是否在675到925之间。它检查radiacion是否是整数675676。。。924(但不是925)。因此,例如,670.5不是in range(675, 925)。您需要的是一个显式的不等式检查:675 <= radiacion <= 925。与linspace相同:3.1 <= u <= 5,而不是u in np.linspace(3.1, 5)

相关问题 更多 >