Помощь в написании программы Python

Есть необходимость в создании конвертера величин.

import math

print ('''
Выберете желаемое действие:
_____________________________
1 - конвертация из дБм в мВт
2 - конвертация из дБм в В
3 - конвертация из мВт в дБм
4 - конвертация из В в дБм
0 - Выход
_____________________________
''')

var=int(input())
while var==0:
    print ("Завершение работы программы.")
    break
if var==1:
    print ("Введите требуемый уровень сигнала, дБм:")
    dBm = float (input())
    mWt = (10 ** (dBm/10))
    print ("Текущая мощность:", "%.2f" % mWt, "мВт")
elif var==2:
    print ("Введите значение dBm:") # заданное значение сигнала в dBm
    Rf = float (input())
    V = ((Rf+120)/40) 
    if Rf<-100:
        print ("Низкое значение dBm")
    elif Rf>-10:
        print ("Высокое значение dBm")
    else:                       
        print ("Необходимое значение V:", V, "V")
elif var==3:
    print ("Введите мощность mWt:")
    mWt = float (input())
    dBm = 10*math.log(mWt, 10)
    print ("Результат:", "%.2f" % dBm, "dBm")
elif var==4:
    print ("Введите значение напряжения V:") # показания мультиметра
    V = float (input())
    Rf = 40 * V - 120
    if V<0.5:
        print ("Низкое значение напряжения")
    elif V>2.9:
        print ("Высокое значение напряжения")
    else:                       
        print ("Текущий уровень сигнала:", Rf, "dBm")
elif var!=0 or va!=1 or var!=2 or var!=3 or var!=4:
    print ("Введите одно из предложенных значений")

по отдельности каждая функция работает, но по завершении работы - программа закрывается. Как сделать, чтобы по завершению работы функции предлагалось заново выбрать один из предложенных вариантов?


Ответы (1 шт):

Автор решения: gil9red

Просто зациклите все условия.

Например:

import math

print ('''
Выберете желаемое действие:
_____________________________
1 - конвертация из дБм в мВт
2 - конвертация из дБм в В
3 - конвертация из мВт в дБм
4 - конвертация из В в дБм
0 - Выход
_____________________________
''')

while True:
    try:
        var = int(input())
    except ValueError:
        print("Введите одно из предложенных значений")
        continue

    if var == 0:
        print("Завершение работы программы.")
        break
    elif var == 1:
        print("Введите требуемый уровень сигнала, дБм:")
        dBm = float (input())
        mWt = (10 ** (dBm/10))
        print("Текущая мощность:", "%.2f" % mWt, "мВт")
    elif var == 2:
        print ("Введите значение dBm:") # заданное значение сигнала в dBm
        Rf = float (input())
        V = ((Rf+120)/40)
        if Rf<-100:
            print ("Низкое значение dBm")
        elif Rf>-10:
            print ("Высокое значение dBm")
        else:
            print ("Необходимое значение V:", V, "V")
    elif var == 3:
        print ("Введите мощность mWt:")
        mWt = float (input())
        dBm = 10*math.log(mWt, 10)
        print ("Результат:", "%.2f" % dBm, "dBm")
    elif var == 4:
        print ("Введите значение напряжения V:") # показания мультиметра
        V = float (input())
        Rf = 40 * V - 120
        if V<0.5:
            print ("Низкое значение напряжения")
        elif V>2.9:
            print ("Высокое значение напряжения")
        else:
            print ("Текущий уровень сигнала:", Rf, "dBm")
    else:
        print("Введите одно из предложенных значений")
→ Ссылка