Почему не происходит изменение строки при форматировании? import math p=[] d='' def binc(n): k=0 for i in range(n+1): bin_c=(math.factorial(n))/((math.factorial(k)*(math.factorial(n-k)))) p.append(str(int(bin_c))) k+=1
print(p) binc(6) def final_formula(list_,m): k=0 if int(len(list_))%2==1: l=(int(len(list_)-1)/2) f=int(len(list_)-l-1) d=list_[-1:f] h=list_[1:(f-1)] while k!=m: for i in h: i+'a^{0}b{1}'.format(str(m-k),str(k)) k+=1 final_formula(p,6) Я ожидал ,что строка c "ab" будет добавляться к каждому элементу списка h(во второй функции ),но этого не происходит.Почему? (да,названия переменных ужасны,знаю,просто это для себя)
Проблема здесь в том, что в цикле вы не обновляете значения элементов списка h с добавлением строки "ab". Вместо этого просто создаёте новую строку, но не сохраняете её.
Вам нужно обновлять элементы списка h, добавляя "ab" к каждому элементу, например, так:
for i in range(len(h)): h[i] += 'ab'
Таким образом, строка "ab" будет добавляться к каждому элементу списка h на каждой итерации цикла.
Проблема здесь в том, что в цикле вы не обновляете значения элементов списка h с добавлением строки "ab". Вместо этого просто создаёте новую строку, но не сохраняете её.
Вам нужно обновлять элементы списка h, добавляя "ab" к каждому элементу, например, так:
for i in range(len(h)):h[i] += 'ab'
Таким образом, строка "ab" будет добавляться к каждому элементу списка h на каждой итерации цикла.