Вне урока 3 | Решаем задачи на питоне | Python с нуля | Обучение

preview_player
Показать описание
Вне урока 3 | Решаем задачи на питоне | Python с нуля | Обучение

Буду очень рад вашим донатам на печеньки и развитие канала, задонатить можно и 1 рубль ;) это можно сделать по ссылке:
Или по номеру карты 5599 0020 2120 5523 юмани
Спасибо за Вашу поддержку канала!!!
------
Не забываем подписываться!

Курс по Python/ Программирование с нуля

В этом уроке мы с вами решим задачу :

Даны два файла, в каждом из которых находится запись многочлена.
Задача - сформировать файл, содержащий сумму многочленов.

Пример двух заданных многочленов:
23x⁹ - 16x⁸ + 3x⁷ + 15x⁴ - 2x³ + x² + 20 = 0
17x⁹ + 15x⁸ - 8x⁷ + 15x⁶ - 10x⁴ + 7x³ - 13x¹ + 33 = 0

Результат:
40x⁹ - x⁸ -5x⁷ + 15x⁶ +5x⁴ + 5x³ + x² - 13x¹ + 53 = 0

------
Скачать Python:
------
Не забываем подписываться!

#python #начинающим #видеоуроки
Рекомендации по теме
Комментарии
Автор

Такая же задача, как и у нас на курсах в GB! Спасибо за объяснение!

arsenytrofimov
Автор

Большое спасибо за видео! На мой взгляд, там 3 недочета
1. replace("x**1 ", "x "), а не .replace("x**1", "x ") - как уже говорили, иначе степень съедим
2. replace(' 1x^', ' x^'), а не replace('1x^', ' x^') - иначе, можно обрезать выражение "21x^4" до "2x^4", например.
3. Мы не можем обрабатывать, если на конце не будет X. Например,
23x**10 - 16x**8 + 19x**7 + 15x**4 - 2x**3 + 1x**2 + 20 = 0
На мой взгляд, нужно знать, есть ли в строке элемент без "x" - если да, то ок и Split работает. Если нет, то все также, но его исключаем из Split и потом добавляем.

Возможный вариант в вашей функции (идем с конца, встречаем до 1-ого "+" или "-" "x" - все отлично. Не встречаем. Сохраняем этот элемент отдельно, вырезаем из строки. Потом добавляем в словарь.
def remake(equation):
dictequation={}
k=''
for i in range(len(equation)-1, -1, -1):
if equation[i]=='+' or equation[i]=='-':
break
else:
if equation[i]=='x':
k=equation[i]
equation=equation.replace('+ ', '+').replace('- ', '-')
equation=equation.split()
if k=='x':
equation=equation[:-2]
else:
last=int(equation[-3])
equation=equation[0:-3];
dictequation[0]=last
for i in range(len(equation)):
equation [i]=equation[i].replace('+', '').split('x**')

return dictequation

МаксимАкулов-ви
Автор

Мысль понятна. Вполне неплохо, но в исходных файлах у нас запись смутно напоминающая многочлен)

mkmk
Автор

Для тех кто заметил... в последних replace должно быть .replace("x**1 ", "x "), а не .replace("x**1", "x "). Иначе replace съедает десятки степени.. Обратите внимание на первый член многочлена в полученном результате

alextime