回答編集履歴
3
追記
    
        answer	
    CHANGED
    
    | @@ -1,3 +1,21 @@ | |
| 1 | 
            +
            質問の主旨を少し読み間違えていました。
         | 
| 2 | 
            +
            思い通りにコードが動作しないのは、次の部分に問題があるからです。
         | 
| 3 | 
            +
            > ```Python
         | 
| 4 | 
            +
            if cmd in msg :
         | 
| 5 | 
            +
            > ```
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            **空文字は、全ての文字列に含まれます。**
         | 
| 8 | 
            +
            ```Python
         | 
| 9 | 
            +
            >>> '' in ''
         | 
| 10 | 
            +
            True
         | 
| 11 | 
            +
            >>> '' in 'あいうえお'
         | 
| 12 | 
            +
            True
         | 
| 13 | 
            +
            ```
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            == で判定するか、先に not cmd で分岐するようにしてください。
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            編集前
         | 
| 18 | 
            +
            ---
         | 
| 1 19 | 
             
            > 下記コードの場合、
         | 
| 2 20 | 
             
            if response = '' :ということになるのでしょうか? not responseだと、空白ではないということになってしまうのではないでしょうか?
         | 
| 3 21 |  | 
2
修正
    
        answer	
    CHANGED
    
    | @@ -1,10 +1,16 @@ | |
| 1 1 | 
             
            > 下記コードの場合、
         | 
| 2 2 | 
             
            if response = '' :ということになるのでしょうか? not responseだと、空白ではないということになってしまうのではないでしょうか?
         | 
| 3 3 |  | 
| 4 | 
            -
            notを受けるのがシーケンス(文字列、リストなど)である場合、
         | 
| 5 | 
            -
            not seq は len(seq) == 0 と同意で | 
| 4 | 
            +
            notを受けるのがシーケンス(**註**)である場合、not seq は len(seq) == 0 と同意です。
         | 
| 5 | 
            +
            **註: 文字列・リスト・タプルなど。**
         | 
| 6 6 |  | 
| 7 7 | 
             
            細かい点ですが、空白ならTrueです。Falseなのは空文字だからです。
         | 
| 8 | 
            +
            ```Python
         | 
| 9 | 
            +
            >>> bool(' ')
         | 
| 10 | 
            +
            True
         | 
| 11 | 
            +
            >>> bool('')
         | 
| 12 | 
            +
            False
         | 
| 13 | 
            +
            ```
         | 
| 8 14 |  | 
| 9 15 | 
             
            ---
         | 
| 10 16 | 
             
            PEP8にはこのように書かれています。
         | 
1
整理
    
        answer	
    CHANGED
    
    | @@ -1,11 +1,15 @@ | |
| 1 | 
            +
            > 下記コードの場合、
         | 
| 2 | 
            +
            if response = '' :ということになるのでしょうか? not responseだと、空白ではないということになってしまうのではないでしょうか?
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            notを受けるのがシーケンス(文字列、リストなど)である場合、
         | 
| 5 | 
            +
            not seq は len(seq) == 0 と同意であると思って良いでしょう。
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            細かい点ですが、空白ならTrueです。Falseなのは空文字だからです。
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            ---
         | 
| 1 10 | 
             
            PEP8にはこのように書かれています。
         | 
| 2 11 | 
             
            Pythonを長く使うつもりなのであれば、notを利用した書き方に慣れておいた方が良いでしょう。
         | 
| 3 12 |  | 
| 4 13 | 
             
            > For sequences, (strings, lists, tuples), use the fact that empty sequences are false.
         | 
| 5 14 |  | 
| 6 | 
            -
            **引用元:** [PEP 8 -- Style Guide for Python Code | Python.org](https://www.python.org/dev/peps/pep-0008/#programming-recommendations)
         | 
| 15 | 
            +
            **引用元:** [PEP 8 -- Style Guide for Python Code | Python.org](https://www.python.org/dev/peps/pep-0008/#programming-recommendations)
         | 
| 7 | 
            -
             | 
| 8 | 
            -
            ---
         | 
| 9 | 
            -
            > if not response :だと、response = ''と定義しているので、空白ではないというようになる気がしますが・・・。
         | 
| 10 | 
            -
             | 
| 11 | 
            -
            細かい点ですが、空白ならTrueです。Falseなのは空文字だからです。
         | 
