让这个痛苦的过程快一点(python、sympy、latex)

让这个痛苦的过程快一点(python、sympy、latex),python,latex,sympy,Python,Latex,Sympy,首先,我现在有一个机械工程公司的大项目。我需要构造和计算整个起重机构造,我正在寻求帮助,因为我是python新手 这将是超过100页的计算和方程式,我以这种方式编程,以给出最终结果并保存latex就绪代码: import math from sympy import * from sympy.solvers import solve from sympy.physics.units import * etau, ik, eta0 = symbols ("eta_u i_k eta_0") eq

首先,我现在有一个机械工程公司的大项目。我需要构造和计算整个起重机构造,我正在寻求帮助,因为我是python新手

这将是超过100页的计算和方程式,我以这种方式编程,以给出最终结果并保存latex就绪代码:

import math
from sympy import *
from sympy.solvers import solve
from sympy.physics.units import *

etau, ik, eta0 = symbols ("eta_u i_k eta_0")
eq1 = Eq(etau, (1/ik)*((1-eta0**ik)/(1-eta0)))
etau_result=eq1.rhs.evalf(subs={ik:3, eta0:98e-2})
eq1_R=solve(eq1)[0]

text_file = open("Output.txt", "w")
text_file.write("Stupanj djelovanja faktorskih koloturnika racuna se prema
formuli:\n \n"+"\\begin{equation} \n"+latex(eq1)+"=%s"%`    
(etau_result)+"\n"+"\\end{equation}" \
"\ngdje je: \n \n "\
+latex(ik)+"=u="+str(ik)+" -prijenosni omjer koloturnika\n"\
+latex(eta0)+" -Iskoristivost jedne uznice smjestene na valjnom lezaju\n\n"    
)
好的,请忽略那个奇怪的语言,它是克罗地亚语,所以我没有时间翻译:)

现在我有很多相同的代码,我需要为每一个该死的方程编写代码,下面我需要描述,将方程转换成乳胶形式,并给出一些关于精确方程的单词

我知道不可能用描述自动化零件,但我想用等式自动化零件,因为我需要为每个等式编写从第5行到第18行的相同代码,这是a。。。。而且要花太多时间


我希望我们能找到一些有趣的解决方案。

因为我在这里发布了这个qestion,我带来了一些有用的东西,但我需要改进它,现在我不知道如何:

a={}
n = input("How much keys do you want?")


#Input
for key in range(n):
    key = raw_input(" Write the name of the key  ")
    a.setdefault(key, [])
    a[key].append(raw_input(" Insert variable  "))
    a.setdefault(key, [])
    a[key].append(raw_input(" Insert symbole  "))
    a.setdefault(key, [])
    a[key].append(input(" Insert value  "))
#print a


#Sort
variable=[]
symbols1=[]
values=[]
for key, value in a.items():
    posX, posY, posZ = value
    variable.append(posX)
    symbols.append(posY)
    values.append(posZ)
#print variable
#print symbols1
#print values


#Math
variable = symbols(symbols1)
eq1 = Eq(etau, (1/ik)*((1-eta0**ik)/(1-eta0)))
print latex(eq1)
这给了我错误

文件“try.py”,第40行,在

eq1=等式(etau,(1/ik)*((1-eta0**ik)/(1-eta0)))


NameError:未定义名称“etau”

您可能希望查看如何进行一些模板化。这将允许您只编写一个大字符串,并以编程方式插入未知部分(方程式)。Python内置了一个简单的模板引擎(比如
'{stuff}'.format(stuff=1)
)。有更先进的一次(最常见的是金甲2和mako)。