В отдельном определении я пытаюсь получить индекс ')', а затем зацикливаться в обратном порядке, пока не получу '('. Обратный оператор работает, и оператор продолжает оставаться в первом индексе ')',По какой причине индекс не может обновляться?
class elements:
periodic_table = ['']
def __init__(self, equation):
self.equation = equation
def poly(self):
polyatomic = 'C2H3O2', 'HCO3', 'HSO4', 'ClO', 'ClO3', 'ClO2', 'OCN', 'CN', 'H2PO4', 'OH', 'NO3', 'NO2', 'ClO4', 'MnO4', 'SCN',
return polyatomic
def separate(self):
element = elements.equation
list1 = []
for first, second in zip(element, element[1:]):
if first == ')' and second.isdigit():
multiply = int(second)
print(first, second)
print(element.index(first))
for multiplcation in element[element.index(first)::-1]:
if multiplcation == '(':
break
elif multiplcation != ')':
final = multiplcation * multiply
print(final)
if first == '=':
list1.append(first)
elif first.isupper() and second.islower():
list1.append(first + second)
elif first.isupper() and second.isdigit():
amount = first * int(second)
list1.append(amount)
elif first.isupper():
list1.append(first)
elements = elements(
'K4Fe(CN)6 + KMnO4 + H2SO4 = KHSO4 + Fe2(SO4)3 + MnSO4 + HNO3 + CO2 + H2O')
print(elements.separate())