0
4

4 に答える 4

2

使用する場合にのみそれらを定義したい場合は、読み取りと変更の両方を完全に明示的かつ明白にしてみませんか?

if   trigger == '1':
    x = int(start)

elif trigger == '2':
    x = int(s1)

elif trigger == '3':
    x = int(s2)

elif trigger == '4':
    x = int(start)
    y = int(s1)

elif trigger == '5':
    x = int(s1)
    y = int(s2)
于 2012-10-11T09:42:52.293 に答える
1

ifの中にもう1つの条件を入れてみませんか。

これはあなたのを書くためのより良い方法option 2です。私はあなたが従うことができると思います:-

if trigger in ('1', '4'): // You can better use `in` to check for more values
    x = int(start)

    if trigger == '4': 
        y = int(s1)

elif trigger in ('2', '5'):  
    x = int(s1)

    if trigger == '5': 
        y = int(s2)            

elif trigger == '3':
    x = int(s2)
于 2012-10-11T09:38:56.100 に答える
1

edフィールドが最適化に役立つかどうかに応じて考慮されるKVダイアグラムの最適化と同様にX(値10..15が定義されていないBCD値の7セグメント表示を参照)、私はそれを維持する傾向がありますできるだけ単純にし、後で使用しない場合でも値を割り当てます。

于 2012-10-11T09:45:19.807 に答える
0

s1、などのすべてs2が常に存在し、有効な整数である場合は、オプション1で問題ありません。

ただし、使用しない値の形式にコードが不必要に依存するようになります。時々それは大丈夫です。しかし、たとえばs1、友人がコマンドラインで渡されたオプションまたは入力ファイルに入力されたオプションから来た場合、ユーザーは、ValueErrorこれらの値を未定義のままにして、使用しないパラメーターで無意味な整数を渡すように強制するために、をスローすることを望んでいません。

だから本当に、答えはそれがすべて文脈に依存するということです!この種の質問に一般的な答えを出すのは難しいです。

于 2012-10-12T08:55:43.070 に答える