2016-11-07 101 views
1

我正在創建一個函數,根據公式中的參數來計算結果。函數中的連續if條件,Python

分別向第一,如果功能我想添加第二個條件,其中n是不無

def target_n(data, y, q = None, s = 1, n = None, ascending = True): 
     if q is not None: 
      target = quantile(data, q, s) 
      return(target) 
     else: 
      target = y(data,s) 
      return(target) 
     if n is not None: 
      sort = target.sort(tst.columns[0],ascending = ascending).ix[0:n,:] 
     return(sort) 

然而在該函數返回「目標」,而不是「排序」案件情況其中n不是無。我怎樣才能實現這個?

回答

1

你的問題是,你有一個返回語句,無論是否爲無。一旦執行到達return語句,它就退出函數。

你可以做這樣的事情

def target_n(data, y, q = None, s = 1, n = None, ascending = True): 
    if q is not None: 
     target = quantile(data, q, s) 
    else: 
     target = y(data,s) 
    if n is not None: 
     target = target.sort(tst.columns[0],ascending = ascending).ix[0:n,:] 

    return(target)