Форум сайта python.su
Хочу создать программу для сбалансирования химических уравнений, независимо от его длины.
def elements(): H = 1 He = 1 Li = 1 Be = 1 B = 1 C = 1 N = 1 O = 1 F = 1 Ne = 1 Na = 1 Mg = 1 Al = 1 Si = 1 P = 1 S = 1 Cl = 1 Ar = 1 K = 1 Ca = 1 Sc = 1 Ti = 1 V = 1 Cr = 1 Mn = 1 Fe = 1 Co = 1 Ni = 1 Cu = 1 Zn = 1 Ga = 1 Ge = 1 As = 1 Se = 1 Br = 1 Kr = 1 Rb = 1 Sr = 1 Y = 1 Zr = 1 Nb = 1 Mo = 1 Tc = 1 Ru = 1 Rh = 1 Pd = 1 Ad = 1 Cd = 1 return Ad, Al, Ar, As, B, Be, Br, C, Ca, Cd, Cl, Co, Cr, Cu, F, Fe, Ga, Ge, H, He, K, Kr, Li, Mg, Mn, Mo, N, Na, Nb, Ne, Ni, O, P, Pd, Rb, Rh, Ru, S, Sc, Se, Si, Sr, Tc, Ti, V, Y, Zn, Zr Ad, Al, Ar, As, B, Be, Br, C, Ca, Cd, Cl, Co, Cr, Cu, F, Fe, Ga, Ge, H, He, K, Kr, Li, Mg, Mn, Mo, N, Na, Nb, Ne, Ni, O, P, Pd, Rb, Rh, Ru, S, Sc, Se, Si, Sr, Tc, Ti, V, Y, Zn, Zr = elements() a, b = (input() for _ in range(2)) if eval(a) == eval(b): print(a, "=", b) else: print(a, "!=", b) ... ...
Офлайн
RiRaiTo_XНепонятно для чего вы вообще сделали этот код и как его планируете использовать.
но дальше просто ничего не смогу поделать.
Офлайн
RiRaiTo_XОдного хотения мало для этого. Это надо уметь программировать. А чтобы уметь программировать, надо учиться программировать.
Хочу создать программу для сбалансирования химических уравнений
RiRaiTo_XЭта задача вполне решаема, только вот своё представлении о коде, который нужно получить в итоге, можешь умножить на десять. А чтобы его получить - код, который умеет это делать, - нужно уметь программировать и плюс ещё питон знать. Это ещё и разные вещи - уметь программировать и уметь на питоне какой-то код записывать.
Для примера, чтобы смогла сбалансировать:
Офлайн
Для уравнивания таких реакций:
RiRaiTo_Xможет быть имеет смысл использовать таблицу полуреакций? Обычно такой способ уравнивания вручную проще, чем другие.
K4Fe(CN)6 + KMnO4 + H2SO4 = KHSO4 + Fe2(SO4)3 + MnSO4 + HNO3 + CO2 + H2O
Отредактировано Rafik (Фев. 12, 2020 07:57:19)
Офлайн
Не изобретайте велосипеды, есть же хемпай
https://pythonhosted.org/chempy/#balancing-stoichiometry-of-a-chemical-reaction
Офлайн
RiRaiTo_XНу читаем про балансировку: https://ru.wikihow.com/%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D1%85%D0%B8%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5-%D1%83%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F
Сделал как-то так, но дальше просто ничего не смогу поделать.
Для примера, чтобы смогла сбалансировать:
K4Fe(CN)6 + KMnO4 + H2SO4 = KHSO4 + Fe2(SO4)3 + MnSO4 + HNO3 + CO2 + H2O
[code python][/code]
Офлайн
Мне думается, первым делом, в ОВР, надо для элементов с переменной валентностью выровнять показатель валентность*коэффициент и потом подбирать остальные коэффициенты.
Офлайн