我对Python编程比较陌生,所以请原谅我的一个noob问题。我试图看看是否可以调用操作方法(add、sub、mul、div)
该程序是一个简单的计算器,它接受一系列整数和运算符,并在按下“=”后执行计算
为清晰起见,注意到了一些问题
comb是用户生成的数字和运算符列表,如字典符号中所示
以comb[0]开头的行是一个测试,最终我将用一种基于comb长度的更完整的计算方法来代替它
我遇到问题的代码如下:
def calculator():
opsymbols = {'+':add, '-':sub, '*':mul, '/':div}
for sym in opsymbols:
if sym == comb[1]:
opsymbols[sym]
print(sym) # check to see whether the IF logic works.
a = comb[0]
print(a) # check to see if assignment of "a" works
b = comb[2]
print(b) # check to see if assignment of "b" works
def add():
a = int()
b = int()
result = a + b
print("result =" + str(result))
def sub():
a = int()
b = int()
result = a - b
print("result =" + str(result))
def mul():
a = int()
b = int()
result = a * b
print("result =" + str(result))
def div():
a = int()
b = int()
result = a / b
print("result =" + str(result))
你是说那个电话吗
您也有阴影变量的问题。但您仍然在寻找上述解决方案。您需要使用键
sym
和函数运算符()
在字典中调用func只需创建第二个字典,其中包含指向每个函数的函数指针。或者,您可以运行eval()并在运行时添加操作代码
方法1:
op_dict = {'+': add, '-': sub, '*': mult, '/': div } # dict with function pointers
op_dict[op]() # call the function
方法2:
return eval('{num1}{op}{num2}'.format(num1=num1, op=op, num2=num2))
如果只进行这4个操作,并且只计算2个num,那么使用方法2并在calculate函数中完成所有操作可能会更容易。它看起来像:
即使有多个具有多个输入编号的操作,也可以在每个操作分隔符处进行拆分,然后通过calculate函数递归运行这些计算的列表
相关问题 更多 >
编程相关推荐