Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/34: Рейтинг темы: голосов - 34, средняя оценка - 4.71
3 / 3 / 0
Регистрация: 20.12.2021
Сообщений: 105

Напишите функцию circuit_resistance() для расчета сопротивления цепи

24.12.2021, 10:05. Показов 8278. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Напишите функцию circuit_resistance() для расчета сопротивления цепи. Функция вызывается с аргументами:
произвольное количество значений сопротивления (целые числа);
connection – тип соединения (serial, parallel) – именованный аргумент, по умолчанию serial (последовательное);
conductivity – именованный аргумент, что найти – сопротивление или проводимость, по умолчанию False, то есть определяется сопротивление.

Функция возвращает вычисленное значение в виде вещественного числа, округлённого до 4 знаков после запятой.
Пример 1
Ввод:
data = [10, 20, 30]
print(circuit_resistance(*data))

Вывод:
60

Пример 2
Ввод:
data = [30, 30, 30]
print(circuit_resistance(*data, connection='parallel'))

Вывод:
10.0

Примечания:
Для справки:
Сопротивление последовательно соединённых резисторов вычисляется как их сумма:
R=R1+R2+R3+…
Сопротивление при параллельном соединении определяется из формулы:
1/R=1/R1+1/R2+1/R3+…
Проводимость – это величина, обратная сопротивлению.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.12.2021, 10:05
Ответы с готовыми решениями:

Напишите программу расчета сопротивления электрической цепи
1. Напишите программу расчета сопротивления электрической цепи, состоящей из двух резисторов, которые могут быть соединены последовательно...

Составьте приложение для расчета общего сопротивления цепи последовательно включенных резисторов R=R1+R2+R3+R4, с запись
Составьте приложение для расчета общего сопротивления цепи последовательно включенных резисторов R=R1+R2+R3+R4, с записью результата в...

Составьте приложение для расчета общего сопротивления цепи параллельно включенных резисторов , где R-общее сопротивле
Составьте приложение для расчета общего сопротивления цепи параллельно включенных резисторов , где R-общее сопротивление цепи.

18
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,683
Записей в блоге: 14
24.12.2021, 11:58
Python
1
2
3
4
5
6
7
8
9
10
11
def circuit_resistance(*resistors,connection='serial'):
    if connection=='serial':
        return sum(resistors)
    elif connection=='parallel':
        s=sum(map(lambda x: 1/x,resistors))
        return 1/s
    else:
        raise ValueError("Bad connection type")
        
data = [10, 20, 30]
print("%.4f" % circuit_resistance(*data,connection='parallel'))
0
 Аватар для Aviz__
2736 / 2046 / 506
Регистрация: 17.02.2014
Сообщений: 9,462
24.12.2021, 14:20
Catstail, так поизящнее будет:
Python
1
2
3
4
5
6
7
8
9
10
11
def circuit_resistance(*resistors: float, is_serial=True):
    func_sum = lambda x: 1 / x
    if is_serial:
        func_sum = lambda x: x
    s = sum(map(func_sum, resistors))
    return s if is_serial else 1/s
 
 
data = [10, 20, 30]
print("%.4f" % circuit_resistance(*data))
print("%.4f" % circuit_resistance(*data, is_serial=False))
1
3 / 3 / 0
Регистрация: 20.12.2021
Сообщений: 105
24.12.2021, 15:24  [ТС]
Catstail,
Ввод:
data = [10, 20, 30]
print(circuit_resistance(*data))

Ожидаемый результат:
60

Вывод:
5.4545
60
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,683
Записей в блоге: 14
24.12.2021, 15:36
DoberMan2001, неужели? Смотри картинку:
Миниатюры
Напишите функцию circuit_resistance() для расчета сопротивления цепи  
0
3 / 3 / 0
Регистрация: 20.12.2021
Сообщений: 105
24.12.2021, 17:02  [ТС]
Catstail,Ммммм...Ну я ж не сумашедший?Вы тоже это видите?
АААА доперло, спасибо!
Миниатюры
Напишите функцию circuit_resistance() для расчета сопротивления цепи  
0
3 / 3 / 0
Регистрация: 20.12.2021
Сообщений: 105
24.12.2021, 17:13  [ТС]
Catstail, Извините, я наверно Вас уже конкретно задолбал, но можно еще вопросик: Как убрать точку с нулями после числа, если round() не принимает?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,683
Записей в блоге: 14
24.12.2021, 17:17
Цитата Сообщение от DoberMan2001 Посмотреть сообщение
Как убрать точку с нулями после числа, если round() не принимает?
- не понимаю смысла вопроса. Зачем убирать дробную часть, если ответ - дробное число? Убрать дробную часть - ответ станет неверным.
0
3 / 3 / 0
Регистрация: 20.12.2021
Сообщений: 105
24.12.2021, 17:19  [ТС]
Catstail, я уже сам не понимаю, что ему надо, но он почему то требует ровно 60(
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,683
Записей в блоге: 14
24.12.2021, 17:37
Цитата Сообщение от DoberMan2001 Посмотреть сообщение
Функция возвращает вычисленное значение в виде вещественного числа, округлённого до 4 знаков после запятой.
- это из условия задачи. И кто это "он"?
0
3 / 3 / 0
Регистрация: 20.12.2021
Сообщений: 105
24.12.2021, 17:39  [ТС]
Catstail, он - сайт
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,683
Записей в блоге: 14
24.12.2021, 17:46
Лучший ответ Сообщение было отмечено DoberMan2001 как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from math import ceil
 
def circuit_resistance(*resistors,connection='serial'):
    if connection=='serial':
        return sum(resistors)
    elif connection=='parallel':
        s=sum(map(lambda x: 1/x,resistors))
        return 1/s
    else:
        raise ValueError("Bad connection type")
        
 
data = [10, 20, 30]
z=circuit_resistance(*data,connection='serial')
f=z-ceil(z)
 
if f==0:
    print(z)
else:    
    print("%.4f" % z)
0
3 / 3 / 0
Регистрация: 20.12.2021
Сообщений: 105
24.12.2021, 17:52  [ТС]
Catstail, мне уже неудобно вас напрягать, либо это в системе сбой, либо незнаю что ему надо...
Ожидаемый результат:
60

Вывод:
60
60

Сообщение:
Traceback (most recent call last):
File "/temp/testing/checker.py", line 10, in <module>
user_result = float(file)
ValueError: could not convert string to float: '60\n60'
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,683
Записей в блоге: 14
24.12.2021, 18:28
DoberMan2001, все:
Миниатюры
Напишите функцию circuit_resistance() для расчета сопротивления цепи  
0
3 / 3 / 0
Регистрация: 20.12.2021
Сообщений: 105
24.12.2021, 20:07  [ТС]
Catstail, с этим разобрался наконец, но оно требует
чтобы был: conductivity – именованный аргумент, что найти – сопротивление или проводимость, по умолчанию False, то есть определяется сопротивление.
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,683
Записей в блоге: 14
25.12.2021, 07:14
Лучший ответ Сообщение было отмечено DoberMan2001 как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from math import ceil
 
def circuit_resistance(*resistors,connection='serial',conductivity=False):
    if connection=='serial':
        return 1/sum(resistors) if conductivity else sum(resistors)
    elif connection=='parallel':
        s=sum(map(lambda x: 1/x,resistors))
        return s if conductivity else  1/s
    else:
        raise ValueError("Bad connection type")
        
 
data = [10, 20, 30]
z=circuit_resistance(*data,connection='serial')
f=z-ceil(z)
 
if f==0:
    print(z)
else:    
    print("%.4f" % z)
3
3 / 3 / 0
Регистрация: 20.12.2021
Сообщений: 105
25.12.2021, 10:18  [ТС]
Catstail, Спасибо вам, огромное!
1
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,304
26.12.2021, 14:52
Цитата Сообщение от DoberMan2001 Посмотреть сообщение
Catstail,
Ввод:
data = [10, 20, 30]
print(circuit_resistance(*data))
Ожидаемый результат:
60
Вывод:
5.4545
60
Python
1
2
3
4
5
6
7
8
9
10
11
12
def circuit_resistance(*resistors,connection='serial'):
    if connection=='serial':
        return sum(resistors)
    elif connection=='parallel':
        s=sum(map(lambda x: 1/x,resistors))
        return 1/s
    else:
        raise ValueError("Bad connection type")
        
data = [10, 20, 30]
print("%.4f" % circuit_resistance(*data,connection='parallel'))
print("%.4f" % circuit_resistance(*data,connection='serial'))
Добавлено через 42 минуты
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from math import ceil
 
def circuit_resistance(*resistors,connection='serial',conductivity=False):
    if connection=='serial':
        return 1/sum(resistors) if conductivity else sum(resistors)
    elif connection=='parallel':
        s=sum(map(lambda x: 1/x,resistors))
        return s if conductivity else  1/s
    else:
        raise ValueError("Bad connection type")
        
 
data = [10, 20, 30]
z=circuit_resistance(*data,connection='serial')
z=circuit_resistance(*data,connection='parallel')
f=z-ceil(z)
 
if f==0:
    print(z)
else:    
    print("%.4f" % circuit_resistance(*data,connection='serial'))
    print("%.4f" % circuit_resistance(*data,connection='parallel'))
1
2 / 2 / 0
Регистрация: 13.03.2023
Сообщений: 23
15.03.2023, 11:54
Задача "Резисторы"
Небольшое дополнение - тесты не пропускали на 3м этапе. Добавлено округление.
Python
1
2
3
4
5
6
7
8
def circuit_resistance(*resistors,connection='serial',conductivity=False):
    if connection=='serial':
        return round(1/sum(resistors), 4) if conductivity else sum(resistors)
    elif connection=='parallel':
        s=sum(map(lambda x: 1/x, resistors))
        return s if conductivity else 1/s
    else:
        raise ValueError("Bad connection type")
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.03.2023, 11:54
Помогаю со студенческими работами здесь

Программа расчета сопротивления электрической цепи
Добрый день! Кому не сложно, напишите, пожалуйста, программу расчета сопротивления электрической цепи, состоящей из двух резисторов,...

Напишите програму для решения примера. Для расчета фактериала сделать функцию
Напишите програму для решения примера x = ((2*5!)+(3*8!)) / (6!+4!) Для расчета факториала сделать отдельную функцию

Разработать приложение для вычисления сопротивления электрической цепи
Разработать приложение для вычисления сопротивления электрической цепи, состоящей из двух сопротивлений. Сопротивления могут быть соединены...

Составить программу для нахождения общего сопротивления участка цепи
Если есть время, пожалуйста, помогите с заданием. Заранее спасибо!)

Утилита для расчёта сопротивления резистора по цветной маркировке
Ещё одна утилитка на Quick Basic. Тут я уже немного ощутил, что такое Quick Basic, исходник более читаем, чем в тетрисе :). Управление...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru