繁体   English   中英

Python矩阵运算中的ValueError

[英]ValueError in Matrix Operation in Python

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

其中数学是AB或(A + B)之类的运算。

但是,该代码不适用于未定义的操作。 如何将其固定到在已定义和未定义函数上都起作用的位置?

感谢您的时间。

一种解决方案:

def matrix(A, B, function):
    try:
        print function(A,B)
    except ValueError:
        print "Not Defined"

例如,其中的功能:

def function(A,B):
    return A+B

您需要将表达式作为字符串传递,并等待对其求值,直到您进入函数的try块:

def matrix(math_string):
    try: result = eval(math_string)
    except ValueError:
        print "Not Defined"
        return
    print result

使用看起来像这样:

matrix('a + b')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM