69562


変数の代入時に使用されている。以下のコードが分かりません。条件分岐になっているのでしょうか？

[code]

    need_size = (row[1] == 'onesize')
    
[/code]


CC BY-SA 4.0
2020-08-15T01:01:20.387
69561
2020-08-15T05:53:11.627
22565
question
python python3
pythonの変数代入時の二重イコールの意味


右辺の計算結果を代入してるだけかと思います。  
つまりneed_sizeはbool型になるかと。

pythonのversionが少し古いですが以下実行結果になります。  
[![画像](https://i.stack.imgur.com/PLtTb.png)](https://i.stack.imgur.com/PLtTb.png)

あくまで返り値のある式である限り代入はできますのでこんなこともできます。  
[![画像の説明をここに入力](https://i.stack.imgur.com/jWvhC.png)](https://i.stack.imgur.com/jWvhC.png)

pythonの実行環境が整ってあるようであればシェル上で`python`を実行すれば対話モードで簡単にpythonコードを実行できますので、そちらで検証してくださればと思います！

[対話モードとは](https://docs.python.org/ja/3/tutorial/interpreter.html#interactive-
mode)


CC BY-SA 4.0
2020-08-15T01:08:44.253
69562
2020-08-15T02:18:42.863
2020-08-15T02:18:42.863
41455
41455
69561
answer


二重イコール`==`は「比較演算子」と言って、左辺と右辺を比較して一致すれば`True`、違っていれば`False`と言うbool型の値を返す演算子です。  
このような比較演算子（他にも `!=`, `>`, `<`, `in`
なども文法的にはこの二重イコールの仲間です）を使った式は条件分岐などでよく見かける式ですが、その式の中身はbool型の値（`True`か`False`）になっていて、条件分岐以外にも今回のような使い方もできるんですね。

ご質問のコード

[code]

    need_size = (row[1] == 'onesize')
    
[/code]

の場合、

（１）`row[1]`の値が`'onesize'`と一致していれば、変数`need_size`には`True`が代入される  
（２）`row[1]`の値が`'onesize'`と違っていれば、変数`need_size`には`False`が代入される

このどちらかの操作が行われていることになります。

既に上記のご回答にてご理解されているようなので蛇足になってしまったかもしれませんが、よければ参考にしていただけたらと思います！


CC BY-SA 4.0
2020-08-15T05:53:11.627
69571
2020-08-15T05:53:11.627
41498
69561
answer