如何使用用户输入定义变量值

一起

我遇到了一个我不太知道如何解决的问题。我正在尝试使用求解器来求解一个简单的方程式。但是,我想要它,以便您可以求解所需的任何变量,并为所需的其他常量提供任何值。

from sympy import *
a, b, c, d=symbols('a b c d')

constants=[]
input1=list(input('input variables for a,b,c,and d'))
for value in input1:
    try:    
        int_values=int(value)
        constants.append(int_values)
    except: 
        solve_for=value

equation=solveset(a + (b-1) * c-d, solve_for)
print (equation)

这当然是不完整的,因为未分配a,b,c和d的值。到目前为止,我对输入1进行设置的方式是:如果用户要求解变量,则只需输入该变量名,如果要为变量分配值,则输入变量的值。问题归结为,我该如何设置它以便用户可以将值分配给常数表?IE浏览器

def_var_vale=list(input('define what variables are in constants'))
def_var_value[0],def_var_value[1],def_var_value[2]=constants[0],constants[1],constants[1]

上面的方法不起作用,但是逻辑是:

#input
def_var_value=[b, c, d]
constants=[1,2,3]
#desired output
b=1
c=2
d=3
# defined variables and their values to be used for the equation 

或其他方法,可能更简单/更干净:

for letter,number in zip(def_var_value,constants):
      letter=number

或类似性质的东西。但是,当然,这也没有定义它们。我当时在想,也许您可​​以创建一个字典,其中a:1,b:2和c:3,但是到那时,我只是在提出想法并在黑暗中拍摄。因此,任何反馈将不胜感激!

奥斯卡·本杰明(Oscar Benjamin)

我不确定,但也许这就是您想要的:

from sympy import *

a, b, c, d = syms = symbols('a b c d')
eq = a + (b-1) * c-d

constants=[]
input_string = '1 2 3 d'
input_words = input_string.split()
rep = {}
for word, sym in zip(input_words, [a,b,c,d]):
    if word.isalpha():
        solve_for = sym
    else:
        rep[sym] = int(word)

soln = solveset(eq.subs(rep), solve_for)

print(soln)

基本上,我们建立一个字典并将其传递给subs:

In [1]: (x + 2*y)                                                                                                                 
Out[1]: x + 2⋅y

In [2]: (x + 2*y).subs({x: 5})                                                                                                    
Out[2]: 2⋅y + 5

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在MS Access查询中使用用户自定义函数传递用户变量值

如何在linux中使用用户输入的变量值从一个shell脚本到另一个shell脚本?

如何从用户输入中读取变量值

如何使用用户输入访问变量?

如何让 sed 使用用户输入变量?

输入定义的变量

如何从输入设置变量值?

如何在vba上输入由用户决定的变量值?

如何使用用户输入创建全局变量

如何使用用户输入来选择bash中的变量?

如何使用循环在 Visual Basic 上多次打印由用户输入定义的语句

如何将用户定义的变量值限制为jmeter中的特定线程组

id 更改时如何将用户定义的变量值设置为零?

如何返回使用变量值的函数?

如何使用变量值打印文本

如何使用mdb读取变量值?

Shell 脚本:如何从文件输入变量值以使用提供的变量运行 sql

如何通过输入定义函数中的变量?

分配变量值时如何修复变量输入延迟?

如何输入填充未知变量值的一维数组

如何使用不同的模板作为输入定义功能

将变量值设置为数字输入的值时,为什么变量值“未定义”?

如何自定义ImageDataGenerator以修改目标变量值?

如何根据变量值在函数内部定义函数

Python27 将方法传递给调用用户输入定义的适当 get|post|delete 的函数

如何保存变量值

JMeter:如何为循环计数的第二次迭代更改用户定义的变量值

SQL使用变量值

如何使用用户输入检索列表