сделала программу, но выдает ошибку во время исполнения (RE), помогите пожалуйста исправить
задача: Фёдор решил познакомить сестру с удивительными свойствами цифр и рассказать ей о системах счисления.
Он написал функцию, которая показывает, как будет выглядеть развернутая запись числа в позиционной системе счисления.
Аргументы функции: число - основание системы счисления (основание системы счисления - 2 <= var_name <= 10) и неограниченное количество цифр числа по порядку убывания степеней.
Функция num_form(var_name, *coeffs) возвращает в виде текста развернутую форму числа.
примечание: Функция должна обязательно называться num_form.
Ваше решение должно содержать только функции.
В решении не должно быть вызовов требуемых функций.
пример: ввод: 2 1 0 0 1 1 0
вывод: 1*2^5 + 0*2^4 + 0*2^3 + 1*2^2 + 1*2^1 + 0*2^0
def num_form(var_name, *coeffs):
n = len(coeffs)
res = ''
for i in range(n - 1):
coeff = coeffs[i]
res += str(coeff) + '*'
res += f'{var_name}^{n - i - 1} + '
coeff = coeffs[-1]
return res[:-3] + f' + {str(coeff)}*{var_name}^{0}'
Python
Помогите с задачей по программированию!(
М-да, количество вопросов на эту тему явно зашкаливает...
Задача решается в одну строку:
Задача решается в одну строку:
def num_form(var_name, *coeffs): return ' + '.join([f'{c}*{var_name}^{len(coeffs)-i}' for i, c in enumerate(coeffs,start=1)])
Рома Руденко
выдает ошибку во время исполнения
Привет! Рад помочь.
Ошибка RE (Runtime Error) обычно означает, что ваша программа завершается аварийно по какой-то причине, например, из-за ошибки в коде, переполнения стека или отсутствия доступа к ресурсам.
В вашей функции я вижу несколько проблем:
Исправил ваш код:
Ошибка RE (Runtime Error) обычно означает, что ваша программа завершается аварийно по какой-то причине, например, из-за ошибки в коде, переполнения стека или отсутствия доступа к ресурсам.
В вашей функции я вижу несколько проблем:
- В первой строке функции вы определяете имя функции как num_form(var_name, *coeffs), а в задании указано, что функция должна обязательно называться num_form. Измените имя функции на num_form.
- Внутри цикла вы неправильно определяете coeff - вы определяете его только для последнего элемента, а не для всех элементов coeffs. Исправьте это, переместив определение coeff внутрь цикла.
- В строке return res[:-3] + f' + {str(coeff)}*{var_name}^{0}' вы используете конкатенацию строк, чтобы добавить последнее слагаемое к результату, но это неправильно - вы должны использовать цикл для добавления всех слагаемых к результату. Исправьте это, добавив цикл для обработки всех элементов coeffs.
Исправил ваш код:
def num_form(var_name, *coeffs):
n = len(coeffs)
res = ''
for i in range(n):
coeff = coeffs[i]
res += f'{str(coeff)}*{var_name}^{n - i - 1} + '
return res[:-3]
Теперь ваша функция должна работать правильно. Например, при вызове num_form(2, 1, 0, 0, 1, 1, 0) она должна вернуть '1*2^5 + 0*2^4 + 0*2^3 + 1*2^2 + 1*2^1 + 0*2^0'.
Рома Руденко
пишет всю ту же ошибку
Похожие вопросы
- ПОМОГИТЕ РЕШИТЬ ЗАДАЧУ ПО ПРОГРАММИРОВАНИЮ ОЧЕНЬ НУЖНО!!!!
- Помогите с задачей по программированию - Python
- Помогите с задачей по программированию
- Задача по программированию. Помогите пожалуйста)) Скидывайте, пожалуйста, на любых языках, я все пойму!
- Как научиться понимать и решать поставленные задачи в программирование?
- Решение задачи по программированию (желательно питон) Сложность O(квадрат(n))
- Помогите пожалуйста решить задачу по программированию наpython.
- Пайтон программирование помогите решить задачу пжпжж
- Задача по программированию
- Задача по программированию, Python