回答編集履歴
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なのは空文字だからです。
|