IF-заявление на основе перекрытия - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь создать простую функцию в Python 3.7, которая возвращает информацию о том, находится ли конкретный усилитель в соответствии с требованиями экспорта или нет.Критерии зависят от насыщенной мощности, диапазона частот и дробной полосы пропускания.

Как видно из приведенного ниже примера, порог соответствия уменьшается с увеличением частоты, что упрощает поиск конечной точки частоты.За исключением условия на частоте 31,8–37 ГГц.

Может кто-нибудь предложить изменение в моем коде, чтобы любой частотный диапазон, который перекрывает критерии, был помечен?

def amplifier():
    freq_start = float(input('Start frequency in GHz: '))
    freq_stop = float(input('Stop frequency in Ghz: '))
    psat = float(input('Saturated power in dBm: '))
    fractional_bw = (freq_stop-freq_start)/((freq_start+freq_stop)/2)

    if 16 < freq_stop <= 31.8 and fractional_bw > 0.10 and psat > 34.77:
        return 'Export compliance according to 3A001.b.2.c'

    if 31.8 < freq_stop <= 37 and psat > -70:
        return 'Export compliance according to 3A001.b.2.d'

    if 37 < freq_stop <= 43.5 and fractional_bw > 0.10 and psat > 30:
        return 'Export compliance according to 3A001.b.2.e'

    if 43.5 < freq_stop <= 75 and fractional_bw > 0.10 and psat > 15:
        return 'Export compliance according to 3A001.b.2.f'

    if 75 < freq_stop <= 90 and fractional_bw > 0.05 and psat > 10:
        return 'Export compliance according to 3A001.b.2.g'

    if 90 < freq_stop and psat > -70:
        return 'Export compliance according to 3A001.b.2.h'

    else:
        return 'Not export compliance according to 3A001.b.2'
...