True、False(bool値)は、文字どおり、真偽を示す値だと思うのですが、
python
11 == 1 2True 3 4[1,2,3] == [3,2,3] 5False
なぜ、足したり、掛けたりできて、しかも数値が出力されるのでしょうか。
python
1True+False 21 3 4True+True 52 6 7True*False 80
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
ベストアンサー
理由は「boolはintのサブクラスだから」なんですが、「どうしてわざわざそういう扱いをしているんだ」ということであれば、「Pythonをデザインした人にとっては、それが役に立つと考えたから」でしょう。
たとえば、「真偽値のリストの各要素を合計するとTrueの総数がわかる」とか。
もちろん、真偽値を誤って数値計算に使うリスクもありますが、(厳密に整数と真偽値を分離した結果)わかっている人が煩雑なコードを書かなければならないコストを考えて、そのように言語設計を選択したということ。
投稿2020/06/05 01:59
総合スコア11990
0
ちなみに
Python
1if 0: 2 print('0') 3if 1: 4 print('1') 5# 1 6```こうもなりますよ。
投稿2020/06/05 02:17
編集2020/06/05 02:18総合スコア2722
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/05 03:00
2020/06/05 03:20
2020/06/05 06:59
2020/06/05 07:09
2020/06/05 07:23
2020/06/05 09:38
0
投稿2020/06/05 01:44
総合スコア6426
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/05 02:10
2020/06/05 02:18
2020/06/05 02:28