Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Подскажите что не так с кодом?

Матвей Рябов Ученик (90), открыт 2 дня назад
class Circuit:
def __init__(self, resistances, voltage):
self.resistances = resistances
self.voltage = voltage

def total_resistance_series(self):
return sum(self.resistances)

def total_resistance_parallel(self):
return 1 / sum(1/r for r in self.resistances)

def current(self, total_resistance):
return self.voltage / total_resistance

def voltage_across_resistor(self, resistor, current):
return resistor * current

def main():
voltage = float(input("Введите напряжение (Вольты): "))

# Ввод данных для последовательного соединения
num_series = int(input("Введите количество резисторов для последовательного соединения: "))
resistances_series = []
for i in range(num_series):
resistance = float(input(f"Введите сопротивление резистора {i+1} (Омы): "))
resistances_series.append(resistance)

# Ввод данных для параллельного соединения
num_parallel = int(input("Введите количество резисторов для параллельного соединения: "))
resistances_parallel = []
for i in range(num_parallel):
resistance = float(input(f"Введите сопротивление резистора {i+1} (Омы): "))
resistances_parallel.append(resistance)

# Создаем объекты цепи для последовательного и параллельного соединения
series_circuit = Circuit(resistances_series, voltage)
parallel_circuit = Circuit(resistances_parallel, voltage)

# Расчеты для последовательного соединения
total_resistance_series = series_ circuit.total _resistance_series()
current_series = series_circuit.current(total_resistance_series)
voltages_series = [series_circuit.voltage_across_resistor(r, current_series) for r in resistances_series]

# Расчеты для параллельного соединения
total_resistance_parallel = parallel_ circuit.total _resistance_parallel()
current_parallel = parallel_circuit.current(total_resistance_parallel)
currents_parallel = [voltage / r for r in resistances_parallel]

# Вывод результатов
print("\nПоследовательное соединение:")
print(f"Общее сопротивление: {total_resistance_series} Ом")
print(f"Ток: {current_series} А")
print("Напряжение на каждом резисторе:")
for i, v in enumerate(voltages_series):
print(f"Резистор {i+1}: {v} В")

print("\nПараллельное соединение:")
print(f"Общее сопротивление: {total_resistance_parallel:.2f} Ом")
print(f"Ток: {current_parallel:.2f} А")
print("Ток через каждый резистор:")
for i, c in enumerate(currents_parallel):
print(f"Резистор {i+1}: {c:.2f} А")

if name == "__main__":
main()
3 ответа
www www Искусственный Интеллект (133403) 2 дня назад
Что-то с отступами не так. Учитывая что майл поправил код в свое удовольствие остается только гадать а вам или положить код в тэги "код" или на пастебин и показать ссылку
Вертолётов 625 Мудрец (13279) 2 дня назад
Код:
 class Circuit:  
def __init__(self, resistances, voltage):
self.resistances = resistances
self.voltage = voltage

def total_resistance_series(self):
return sum(self.resistances)

def total_resistance_parallel(self):
return 1 / sum(1/r for r in self.resistances if r != 0) # Добавлено условие, чтобы избежать деления на ноль

def current(self, total_resistance):
return self.voltage / total_resistance

def voltage_across_resistor(self, resistor, current):
return resistor * current

def main():
voltage = float(input("Введите напряжение (Вольты): "))

# Ввод данных для последовательного соединения
num_series = int(input("Введите количество резисторов для последовательного соединения: "))
resistances_series = []
for i in range(num_series):
resistance = float(input(f"Введите сопротивление резистора {i+1} (Омы): "))
resistances_series.append(resistance)

# Ввод данных для параллельного соединения
num_parallel = int(input("Введите количество резисторов для параллельного соединения: "))
resistances_parallel = []
for i in range(num_parallel):
resistance = float(input(f"Введите сопротивление резистора {i+1} (Омы): "))
resistances_parallel.append(resistance)

# Создаем объекты цепи для последовательного и параллельного соединения
series_circuit = Circuit(resistances_series, voltage)
parallel_circuit = Circuit(resistances_parallel, voltage)

# Расчеты для последовательного соединения
total_resistance_series = series_circuit.total_resistance_series() # Исправлено
current_series = series_circuit.current(total_resistance_series)
voltages_series = [series_circuit.voltage_across_resistor(r, current_series) for r in resistances_series]

# Расчеты для параллельного соединения
total_resistance_parallel = parallel_circuit.total_resistance_parallel() # Исправлено
current_parallel = parallel_circuit.current(total_resistance_parallel)
currents_parallel = [voltage / r for r in resistances_parallel]

# Вывод результатов
print("\nПоследовательное соединение:")
print(f"Общее сопротивление: {total_resistance_series:.2f} Ом")
print(f"Ток: {current_series:.2f} А")
print("Напряжение на каждом резисторе:")
for i, v in enumerate(voltages_series):
print(f"Резистор {i+1}: {v:.2f} В")

print("\nПараллельное соединение:")
print(f"Общее сопротивление: {total_resistance_parallel:.2f} Ом")
print(f"Ток: {current_parallel:.2f} А")
print("Ток через каждый резистор:")
for i, c in enumerate(currents_parallel):
print(f"Резистор {i+1}: {c:.2f} А")

if __name__ == "__main__": # Исправлено
main()
Матвей РябовУченик (90) 2 дня назад
спасибо, а можешь подсказать в чем была ошибка?
Вертолётов 625 Мудрец (13279) Матвей Рябов, 1. Опечатки в именах методов: В вызовах методов total_resistance_series и total_resistance_parallel присутствуют пробелы между circuit и _. 2. Неправильное имя переменной при проверке запуска модуля: В строке if name == "__main__": переменная name должна быть __name__.
Адис Садовничий Мыслитель (7591) 1 день назад
 class Circuit: 
def __init__(self, resistances, voltage):
self.resistances = resistances
self.voltage = voltage

def total_resistance_series(self):
return sum(self.resistances)

def total_resistance_parallel(self):
return 1 / sum(1 / r for r in self.resistances)

def current(self, total_resistance):
return self.voltage / total_resistance

def voltage_across_resistor(self, resistor, current):
return resistor * current


def main():
voltage = float(input("Введите напряжение (Вольты): "))

# Ввод данных для последовательного соединения
num_series = int(input("Введите количество резисторов для последовательного соединения: "))
resistances_series = []
for i in range(num_series):
resistance = float(input(f"Введите сопротивление резистора {i + 1} (Омы): "))
resistances_series.append(resistance)

# Ввод данных для параллельного соединения
num_parallel = int(input("Введите количество резисторов для параллельного соединения: "))
resistances_parallel = []
for i in range(num_parallel):
resistance = float(input(f"Введите сопротивление резистора {i + 1} (Омы): "))
resistances_parallel.append(resistance)

# Создаем объекты цепи для последовательного и параллельного соединения
series_circuit = Circuit(resistances_series, voltage)
parallel_circuit = Circuit(resistances_parallel, voltage)

# Расчеты для последовательного соединения
total_resistance_series = series_circuit.total_resistance_series()
current_series = series_circuit.current(total_resistance_series)
voltages_series = [series_circuit.voltage_across_resistor(r, current_series) for r in resistances_series]

# Расчеты для параллельного соединения
total_resistance_parallel = parallel_circuit.total_resistance_parallel()
current_parallel = parallel_circuit.current(total_resistance_parallel)
currents_parallel = [voltage / r for r in resistances_parallel]

# Вывод результатов
print("\nПоследовательное соединение:")
print(f"Общее сопротивление: {total_resistance_series} Ом")
print(f"Ток: {current_series} А")
print("Напряжение на каждом резисторе:")
for i, v in enumerate(voltages_series):
print(f"Резистор {i + 1}: {v} В")

print("\nПараллельное соединение:")
print(f"Общее сопротивление: {total_resistance_parallel} Ом")
print(f"Ток: {current_parallel} А")
print("Ток через каждый резистор:")
for i, c in enumerate(currents_parallel):
print(f"Резистор {i + 1}: {c} А")


if __name__ == "__main__":
main()
Похожие вопросы