2

Python ファイルでこのコード ブロックを頻繁に使用するとします。

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

このコードを「コピー」して、ファイル全体でこれら 4 行を繰り返し入力する必要がないようにする方法はありますか?

4

4 に答える 4

4

はい、そのための関数を自分で定義します:

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

その後、同じロジックを書き直す代わりに、コードのどこからでも関数を呼び出すことができます。

于 2012-11-05T06:14:56.267 に答える
1

他の回答で示唆されているように、 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 
于 2012-11-05T06:26:53.413 に答える
0

またはさらに短いワンライナー:

x = x - 1 + (x==1) * 2
于 2012-11-05T06:54:39.937 に答える
0
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
于 2012-11-05T06:19:55.750 に答える