2012-11-05 47 views
2

假設我在我的Python文件中經常使用的代碼塊重用的特定代碼行

if x == 1: 
    x += 1 
else: 
    x -= 1 

有沒有一種方法來「複製」這個代碼,這樣我就不必鍵入這四個在整個文件中重複行?

+1

你有沒有聽說過一個叫做函數的東西? :) – Curious

+1

作爲初學者,我的+1應該是初學者。 ;) – pepr

回答

4

是自行定義功能吧:

def flip_member(x): 
    if x == 1: 
     x += 1 
    else: 
     x -= 1 
    return x 

然後就可以調用從任何地方的功能在你的代碼,而不是重寫相同的邏輯的。

+0

這是無效的Python代碼。 – del

+0

是的,我有時會混淆。糾正。 –

0
def manipulate(x): 
    return x+1 if x==1 else x-1 

myVal = 10 
myVal = manipulate(myVal) 
print myVal 
>>> 9 

OR:

manipulate = lambda x: x+1 if x==1 else x-1 
myVal = manipulate(myVal) 
print myVal 
>>> 9 
1

正如在其他的答案建議,你可以寫x的函數,並設置X等於該函數的結果。

一些替代方案寫入更簡單的形式表達:

x = x+1 if x==1 else x-1 

上述計算作爲問題的四行的碼x的相同的新的值。但是,如果您只想在值1和2之間來回切換x,請注意3-1爲2且3-2爲1,因此您可以說 - 在1和2之間切換 -

x = 3-x 
0

或者更短的單線程:

x = x - 1 + (x==1) * 2