我正在尝试对可能未定义的矩阵进行矩阵运算。 (即A为2x2,不能与尺寸为3x2的B相乘。)
print '3.1) ',
try: a + c
except ValueError: print 'Not Defined'
这有效,但我有多个操作,所以我尝试创建一个这样的函数:
def matrix(math):
try: math
except ValueError: print "Not Defined"
print math
其中math是AB或(A + B)等操作。
但是,代码不适用于未定义的操作。如何将其修复到定义和未定义函数的工作位置?
感谢您的时间。
答案 0 :(得分:0)
一个解决方案:
def matrix(A, B, function):
try:
print function(A,B)
except ValueError:
print "Not Defined"
其中函数是:
def function(A,B):
return A+B
答案 1 :(得分:0)
您需要将表达式作为字符串传递并等待评估,直到您进入函数的try块:
def matrix(math_string):
try: result = eval(math_string)
except ValueError:
print "Not Defined"
return
print result
使用看起来像这样:
matrix('a + b')