Python ファイルでこのコード ブロックを頻繁に使用するとします。
if x == 1:
x += 1
else:
x -= 1
このコードを「コピー」して、ファイル全体でこれら 4 行を繰り返し入力する必要がないようにする方法はありますか?
Python ファイルでこのコード ブロックを頻繁に使用するとします。
if x == 1:
x += 1
else:
x -= 1
このコードを「コピー」して、ファイル全体でこれら 4 行を繰り返し入力する必要がないようにする方法はありますか?
はい、そのための関数を自分で定義します:
def flip_member(x):
if x == 1:
x += 1
else:
x -= 1
return x
その後、同じロジックを書き直す代わりに、コードのどこからでも関数を呼び出すことができます。
他の回答で示唆されているように、 x の関数を記述し、 x を関数の結果に等しく設定できます。
いくつかの代替手段は、式をより単純な形式で記述しています。
x = x+1 if x==1 else x-1
上記は、問題の 4 行のコードと同じ x の新しい値を計算します。ただし、値 1 と 2 の間で x を切り替えたいだけの場合は、3-1 が 2 で 3-2 が 1 であることに注意してください。つまり、1 と 2 を切り替えるには、次のように言えます。</p>
x = 3-x
またはさらに短いワンライナー:
x = x - 1 + (x==1) * 2
def manipulate(x):
return x+1 if x==1 else x-1
myVal = 10
myVal = manipulate(myVal)
print myVal
>>> 9
また:
manipulate = lambda x: x+1 if x==1 else x-1
myVal = manipulate(myVal)
print myVal
>>> 9