win10のpythonのIDLEを使用しています
1 and 0 が 0になり
1 and 2 など1と1以上の場合では大きい方の値が返ってきますが
論理値が返ってくるわけでもエラーにもならないのはどうしてでしょう?
論理演算子も論理値を扱う以外の演算子としての挙動はどのように決まっているのでしょうか?(数値や文字列など)
こういう場合どこを調べたら早いとかもあればお教えください
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
0
ベストアンサー
こういう場合どこを調べたら早いとかもあればお教えください
私の場合、分からないことがあったらまずは公式のドキュメントを見ます。
Python 3.8.3 ドキュメント
ブール演算 --- and, or, not | 公式ドキュメント
ただ、公式のドキュメントは専門用語が多く理解できないときがたまにあるので、そのときは以下のサイトをよく参考にしています。
note.nkmk.me
論理演算子についても分かりやすく説明してくれています。
Pythonの論理演算子and, or, not(論理積、論理和、否定)| note.nkmk.me
私もPython歴2か月程度の初心者ですが、この方法で大抵の問題は解決できているので試してみてはどうでしょうか。
投稿2020/06/10 03:20
退会済みユーザー
総合スコア0
0
1 and 2 など1と1以上の場合では大きい方の値が返ってきますが
ちがいます
python
1print(1 and 2) # => 2 2print(2 and 1) # => 1 3print(0 and 1) # => 0 4print(1 and 0) # => 0
式 x and y は、まず x を評価します; x が偽なら x の値を返します; それ以外の場合には、 y の値を評価し、その結果を返します
ちなみに「真」「偽」というのはBooleanクラスのTrue/Falseのことではありません。
True/Falseは数ある真/偽とみなされる物のうちの一つです。
ブール演算のコンテキストや、式が制御フローの文で使われる際には、次の値は偽だと解釈されます: False 、 None 、すべての型における数値の 0、空の文字列、空のコンテナ (文字列、タプル、リスト、辞書、集合、凍結集合など)。 それ以外の値は真だと解釈されます。
投稿2020/06/10 01:46
編集2020/06/10 01:55総合スコア13553
0
Pythonのand演算子は、第一引数(左側)が偽であれば第一引数を返し、そうでなければ第二引数(右側)を返します。
|演算|結果|注釈|
|:--|:--:|--:|
|x or y
|x が偽なら y, そうでなければ x|(1)|
|x and y
|x が偽なら x, そうでなければ y|(2)|
|not x
|x が偽ならTrue
,そうでなければFalse
|(3)|
注釈:
- この演算子は短絡評価されます。つまり第一引数が偽のときにのみ、第二引数が評価されます。
- この演算子は短絡評価されます。つまり第一引数が真のときにのみ、第二引数が評価されます。
not
は非ブール演算子よりも優先度が低いので、not a == b
はnot (a == b)
と解釈され、a == not b
は構文エラーです。
投稿2020/06/10 02:30
総合スコア222
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/10 03:15 編集
2020/06/10 09:37
0
恐らく数字の大小とかではなく
x and y
x が偽なら x, そうでなければ y
となってると思います。
今回だと左がFalseではないので右の値が返ってきてるんだと思います。
また、調べ切れてませんがbool値以外でもTrue/Falseと判定されて、数値だと0がFalse扱いになると思います。
3(True) and 0(False) → 0
0(False) and 3(True) → 0
※これは予想ですすみません
投稿2020/06/10 01:52
総合スコア88
0
とりあえず、0は偽、で、0以外は真、ということになってますね
投稿2020/06/10 01:42
総合スコア88042
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/10 01:50
2020/06/10 02:11
2020/06/10 05:36
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。