Python Sympy公式重排器isn';“不要使用字母”;";我可以';我不明白为什么
正如标题所示,我正在为一些物理公式做一个公式重排器,我正在尝试为E=h*f做一个函数,即普朗克常数和频率的能量公式 出于某种原因,当您在E_query()函数的input()中键入字母“E”时,答案显示为“[]”。其他每一个字母,大写字母,小写字母,大写字母和小写字母,都没有这个问题。这只是字母E,我不明白为什么 不同的方程式示例:Python Sympy公式重排器isn';“不要使用字母”;";我可以';我不明白为什么,python,sympy,Python,Sympy,正如标题所示,我正在为一些物理公式做一个公式重排器,我正在尝试为E=h*f做一个函数,即普朗克常数和频率的能量公式 出于某种原因,当您在E_query()函数的input()中键入字母“E”时,答案显示为“[]”。其他每一个字母,大写字母,小写字母,大写字母和小写字母,都没有这个问题。这只是字母E,我不明白为什么 不同的方程式示例: def Fg_query(): Fg_variables = ["G", "M", "m", "
def Fg_query():
Fg_variables = ["G", "M", "m", "r", "Fg"]
print("Fg=(G*M*m)/r^2 is the formula you selected.")
print("What variable are you trying to solve for?")
Fg_userchoice = input()
G = 0.0000000000667259
if Fg_userchoice in Fg_variables:
G,M,m,r,Fg = symbols('G M m r Fg')
r = (G*M*m)/r**2
l = Fg
r = solve(l-r, Fg_userchoice)
l = Fg_userchoice
print(r)
elif Fg_userchoice is not Fg_variables:
print("Invalid input")
Fg_query()
这是E=f*h函数:
def E_query():
E_variables = ["E","h","f"]
print("E=h*f is the formula you selected.")
print("What variable are you trying to solve for?")
E_userchoice = input()
h = 6.62607004e-34
if E_userchoice in E_variables:
h,E,f = symbols('h E f')
r = (h*f)
l = E
r = solve(l-r, E_userchoice)
l = E_userchoice
print(r)
elif E_userchoice is not E_variables:
print("Invalid input")
E_query()
我不知道这是否是Symphy库的问题,或者是我做错了什么,但是如果有人能告诉我发生了什么,那将是一个很大的帮助。Symphy有时让您通过输入字符串来解决问题,并将
为您整理它。但是,在E
的情况下,会创建数字常量E=exp(1)
。因此,为了安全起见,不要将用户的选择作为字符串发送到solve
,而是将其作为Symbol(用户选择)
发送。有时,Symphy允许您输入字符串,并将为您进行整理。但是,在E
的情况下,会创建数字常量E=exp(1)
。因此为了安全起见,不要将用户的选择作为字符串发送到solve
,而是作为Symbol(用户选择)
发送