2017-07-23 56 views
0

功能比方說,我有以下功能是在2個變量 -寫兩個變量的函數的一個變量

def banana(x,y): 
    return exp(((-x**2/200))-0.5*(y+0.05*(x**2) - 100*0.05)**2) 

,我想將它寫的 -

def banana(x): 

這裏x是兩個變量的向量;如果可能的話?

感謝您的幫助!

回答

1

可能類似於

def banana(x): 
    return exp(((-x[0]**2/200))-0.5*(x[1]+0.05*(x[0]**2) - 100*0.05)**2) 
+1

反引號是隻爲更少的代碼格式化塊比一條線。對多行塊使用四空間縮進來將格式化作爲連續的塊和顏色語法呈現。 –

+0

@CharlesDuffy,謝謝! – Entro

+0

NP。 (我冒昧地在這裏自己解決這個問題;你可以看看編輯歷史來看看它們的區別)。 –

2

是的,這是可能的:

def _banana(x): 
    return banana(*x) 
-1

你可以列出

def banana(x): 
    return exp(((-x[0]**2/200))-0.5*(x[1]+0.05*(x[0]**2) - 100*0.05)**2) 
2

寫你可以寫:

def banana(vector): 
    x, y = vector 
    return exp(((-x**2/200))-0.5*(y+0.05*(x**2) - 100*0.05)**2) 
2

解壓ARGS在函數的開頭:

def banana(args): 
    x, y = args 
    return exp(((-x**2/200))-0.5*(y+0.05*(x**2) - 100*0.05)**2) 
定義行

或直接:

def banana((x, y)): 
    return exp(((-x**2/200))-0.5*(y+0.05*(x**2) - 100*0.05)**2) 
0

呀,當然這是可能的。 您可以使用列表或元組。把你的兩個變量到列表或元組

x = [5, 7] # A list 
x = (5, 7) # A tuple 

你函數,那麼應該是這樣的:

def banana(x): 
    x, y = x # Unpacking 
    return exp(((-x**2/200))-0.5*(y+0.05*(x**2) - 100*0.05)**2) 

多見於https://docs.python.org/3.6/tutorial/datastructures.html