2016-03-30 31 views
0

未定義の可能性のある行列に対して行列演算を実行しようとしています。 (つまり、Aは2×2で、寸法3×2とBと乗算することはできません。)この作品Pythonでの行列操作のValueError

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)のような演算です。

ただし、定義されていない操作ではコードは機能しません。定義済みの関数と未定義の関数の両方で、どのように動作するかを修正するにはどうすればよいですか?

ありがとうございます。

+0

私たちに役に立たない(小さな)データセットの例を教えてください。また、 'math' **は**定義されていますが、空でもかまいません(' try:... except ... 'の代わりに 'if math:...'でテストする必要があります)。 – bufh

答えて

0

1ソリューション:あなたは、関数の試みをしているまで

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

あなたは文字列として式を渡して、それを評価するために待機する必要があります:機能は、例えばある

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

ブロック:

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

使用は次のようになります。

matrix('a + b')