2016-03-30 31 views
0

Matris işlemlerini, tanımlanamayan matrisler üzerinde yapmaya çalışıyorum. (Yani A 2x2 ve 3x2 boyutu ile B ile çarpılır edilemez.) Bu işleriPython'da Matris İşleminde ValueError

print '3.1) ', 
try: a + c 
except ValueError: print 'Not Defined' 

, ama ben şöyle bir işlev oluşturmaya çalıştınız birden çok operasyonları var:

def matrix(math): 
    try: math 
    except ValueError: print "Not Defined" 
    print math 

matematik, AB veya (A + B) gibi işlemdir. Ancak, kod tanımlı olmayan işlemlerde çalışmaz. Üste | Tanımlanmış ve tanımlanmamış işlevlerde çalıştığı yere nasıl giderebilirim?

Zaman ayırdığınız için teşekkür ederiz.

+0

Bize çalışmayan (küçük) bir veri kümesi örneği verebilir misiniz? Ayrıca 'math' **' ın ** tanımlandığını, ancak boş olabileceğini de unutmayın (eğer matematik: ... 'yerine: '... hariç ...' ile test etmelisiniz). – bufh

cevap

0

tek çözüm:

fonksiyon örneği içindir
def matrix(A, B, function): 
    try: 
     print function(A,B) 
    except ValueError: 
     print "Not Defined" 

:

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

Bir dize olarak ifade geçmek ve fonksiyonun denemede oluncaya kadar bunu değerlendirmek için beklemek gerekir blok:

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

kullanın şu şekilde görünecektir:

matrix('a + b')