2016-03-11 66 views
0

在我的腳本中,我想清理我的錯誤處理。我讀到的是我需要:如果嘗試語句

try: 
    do something 
exept: 
    raise Error("give error") 
finaly: 
    print("something else") 

我遇到的問題是我不知道如何處理我以前的書面函數中的錯誤。
如何創建一個帶有多個條件的try語句,如下面的簡單示例。

def varlist(var, length): 
    from numpy import array 
    if len(array(var)) > length: 
     return(False) 
     raise ValueError('list is to long only first ' + str(length) + ' paramerets will be used') 
    elif len(array(var)) < length: 
     return(False) 
     raise ValueError('list is to short ' + str(length) + ' is less than required') 
    else: 
     return(True) 

所以一般我的問題是:如何處理,如果/嘗試用多路輸出都baased自己的價值主張....
在這種情況下,我有兩個輸出,但我也有其它更多的價值(有時字符串)

回答

0

我不知道你這個問題,但這裏是使用try語句代碼:

 def varlist(var, length): 
     from numpy import array 
     try: 
      return True 
     except len(array(var)) > length : 
      return False 
      raise ValueError('#Your Error message 1') 
     except len(array(var)) < length : 
      return False 
      raise ValueError('#Your Error message 2') 

如果你的意思是如何在一個元組返回多個值,只是「包」他們像這樣:

returntuple = ('statement1', 'statement2', etc) 
    return returntuple 

然後你就可以 '解包' 這樣的:

returntuple [1]

將返回'statement2'

這樣你就可以返回多個值。你需要詭計python,因爲它不提供返回多個值(據我所知!)。但是,如果你把你的值包裝在一個元組中,或者一個監聽器都很好!

如果這兩個答案不能解決您的問題,我很抱歉,我只是不明白這個問題。

此致,heureka

+0

您的回答不工作...當我有以下輸入:'import numpy as np'; 'a = np.arange(3)'; 'b = 2'; 'c = varlist(a,b)'。然後返回C作爲'真',而這必須是'假' –

+0

長版本更像是:'如果罪'; 'elif cos'; elif tan'; 'ELIF等' 所以這個系列是基於正確的價值觀 –