12

カレンダーの日付を計算する関数を書いています。行を削減しているときに、同じ範囲に複数の変数を割り当てることができないことがわかりました。

Jan, Mar, May, Jul, Aug, Oct, Dec = range(1,32)

これらの値を割り当てる効率的な方法はありますか?PythonがValueErrorを与えるのはなぜですか?

4

2 に答える 2

65

使用する

Jan = Mar = May = ... = range(1, 32)
于 2012-06-01T21:37:41.820 に答える
6

説明したことを実行する最も簡単な方法は、x=y=z ... = VALUE構文を使用することです。ここで、x、y、z、および含めるその他の変数にはすべて、の値が割り当てられますVALUE

この例では、等号の左側にあるすべてのコンマ区切り変数が、右側のタプルの順次値に割り当てられています。したがって、次のようなことができます。

values = ( 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec = values

コードでは、左側に7つの値、右側に31の値があるため、左側のリストが左側の値を割り当てる数または変数よりも長いため、範囲外エラーが発生します。 。上記のコードはあなたの目標を達成することとあまり関係がないことを私は知っていますが、私はそれが何をしようとしていたかについて少なくともある程度の洞察を与えると思いました。:D

于 2012-06-01T21:45:45.870 に答える