Помогите с питоном.
Мне нужно создать программу в Python, которая будет производить вычисление третьего или общего резистора сопротивления. Для этого я написал такой код:
print("Введите значение. Если оно неизвестное, введите '?' (без кавычек!).")
R = input("R = ")
R1 = 0
R2 = 0
R3 = 0
if R == "?":
R1 = input("R1 = ")
R2 = input("R2 = ")
R3 = input("R3 = ")
R1 = float()
R2 = float()
R3 = float()
R_total = R1*R2*R3 / R1*R2+R2*R3+R1*R3
R_total = float()
print(f"Ответ: R = {R_total}")
elif R == float() or int():
R1 = input("R1 = ")
R2 = input("R2 = ")
R3_total = R1*R2*R / R2*R+R1*R-R1*R2
print(f"Ответ: R = {R3_total}")
В итоге Python ругается:
Traceback (most recent call last):
File "C:\Users\vladi\AppData\Roaming\JetBrains\PyCharmCE2023.2\scratches\scratch.py", line 18, in <module>
R_total = R1*R2*R3 / R1*R2+R2*R3+R1*R3
~~~~~~~~~^~~~
ZeroDivisionError: float division by zero
А смысл считать только частный случай? Считать надо любой.
Параллельное включение резисторов:

Разумно было бы разделить на две функции, но не принципиально:
def calc_R(args,Req=None):
try:
if Req:
return round(abs(1/(sum([1/R for R in args])-1/Req)),2)
else:
return round(1/sum([1/R for R in args]),2)
except ZeroDivisionError:
print('Некорректные данные')
return False
print(calc_R([100,120,150]))
print(calc_R([100,120], Req = 40))
В этом коде функция принимает произвольный список номиналов резисторов. Если пришёл только список, то считает эквивалентное сопротивление. Если после списка указан дополнительный аргумент Req, то считает недостающий резистор в цепи по известному эквивалентному.
Здесь полностью код переписывать надо. Где ты его взял и для чего?
Запомните раз и навсегда: если хотите получить нормальный ответ, нужно давать ПОЛНУЮ постановку задачи, а не ваш сокращенный вариант.
А так - это просто гадание на кофейной гуще
это не питон, это кобра
Вместо
R1 = input("R1 = ")
R2 = input("R2 = ")
R3 = input("R3 = ")
R1 = float()
R2 = float()
R3 = float()
Нужно
R1 = float(input("R1 = "))
R2 = float(input("R2 = "))
R3 = float(input("R3 = ") )