Python中Matrix操作中的ValueError

时间:2016-03-30 06:14:27

标签: python python-2.7 matrix-multiplication

我正在尝试对可能未定义的矩阵进行矩阵运算。 (即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)等操作。

但是,代码不适用于未定义的操作。如何将其修复到定义和未定义函数的工作位置?

感谢您的时间。

2 个答案:

答案 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')