在python中用变量打印方程式

时间:2019-07-06 19:19:52

标签: python python-2.7

我正在尝试使用变量打印方程式

我已经尝试将所有符号都用引号引起来

import random
import random
def ask():
    a = raw_input("do you want the equation to be easy, medium, or hard: ")
    b = int(raw_input("what is the number that you want to be the answer: "))
    if(a == "easy"):
        d = random.randint(1, 10)
        e = random.randint(2, 5)
        round(b)
        print C = b - d + e  - (e/2) + ((d - e) + e/2)

我希望它打印出包含所有变量和符号的方程式 当我在其中键入此内容时,会出现语法错误

3 个答案:

答案 0 :(得分:1)

尝试首先将方程式放入str(),然后打印字符串 这样它将在结果之前显示方程式。  然后打印结果

答案 1 :(得分:1)

您不能打印出引号以外的字符串。将要打印的位准确地写在引号中,并按原样打印变量。例如:

print 'C =', b, '-', d, '+', e, '-', (e/2), '+', ((d - e/2)

试试吧,看看你怎么走。您可能需要考虑如何在其他情况下进行其他操作(例如d-e / 2为负。

round(b)也不会执行任何操作,不会就地运行。

答案 2 :(得分:1)

这就是我想作为完整解决方案想要的。它接受一个方程式字符串作为输入,然后用输入变量填充该方程式,打印结果方程式,然后对其求值以提供结果:

import random

equation = "b - c + e  - (e/2) + ((d- e) + e/2)"

b = 12
c = 24
d = random.randint(1, 10)
e = random.randint(2, 5)

# Expand the vlaues into the equation
equation = equation.replace('b', str(b)).replace('c', str(c)).replace('d', str(d)).replace('e', str(e))

# Print the equation
print "C = " + equation

# Evaluate the equation and print the result
C = eval(equation)
print "C = " + str(C)

抽样结果:

C = 12 - 24 + 2  - (2/2) + ((6- 2) + 2/2)
C = -6

此代码只是对可以完成操作的演示。您可以采用这些想法并将其概括化,以将变量名和值的映射扩展为任意表达式,而无需对变量名进行硬编码。映射和方程式可以来自例如文件。