回答編集履歴
1
追記
    
        answer	
    CHANGED
    
    | @@ -8,4 +8,14 @@ | |
| 8 8 | 
             
            > [組み込み型 — Python 3.8.2 ドキュメント](https://docs.python.org/ja/3/library/stdtypes.html#boolean-operations-and-or-not)
         | 
| 9 9 |  | 
| 10 10 | 
             
            という動作になります。Pythonでは基本的に任意のオブジェクトの真理値を判定できるので、上の動作でいいことがわかるはずです。
         | 
| 11 | 
            -
            (つまり`x`が真なら全体の真理値は`x`の真理値でよく、`x`が真でない(偽である)ときは`y`の真理値で全体の真理値が決まる、という`or`に相応しい動作になっています。そしてどちらにしても、返すのは`bool`ではなく元のオペランドを評価した結果です)
         | 
| 11 | 
            +
            (つまり`x`が真なら全体の真理値は`x`の真理値でよく、`x`が真でない(偽である)ときは`y`の真理値で全体の真理値が決まる、という`or`に相応しい動作になっています。そしてどちらにしても、返すのは`bool`ではなく元のオペランドを評価した結果です)
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            ---
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            こういうときは`in`で書くのが通例です。
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            ```python
         | 
| 18 | 
            +
            if a in {"hoge", "fuga"}:
         | 
| 19 | 
            +
            ```
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            `list`や`tuple`として書く場合もありますが、とりあえず今回は`set`としています。集合とみなすならたぶんこれが妥当でしょう。パフォーマンス面でも`set`の帰属判定は多少高速に行えます。
         | 
