Помощь в написании программы 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("Введите одно из предложенных значений")