我正在尝试使用变量打印方程式
我已经尝试将所有符号都用引号引起来
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)
我希望它打印出包含所有变量和符号的方程式 当我在其中键入此内容时,会出现语法错误
答案 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
此代码只是对可以完成操作的演示。您可以采用这些想法并将其概括化,以将变量名和值的映射扩展为任意表达式,而无需对变量名进行硬编码。映射和方程式可以来自例如文件。