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