回答編集履歴

3

追記

2019/07/06 10:08

投稿

LouiS0616
LouiS0616

スコア35660

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

修正

2019/07/06 10:08

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -4,13 +4,25 @@
4
4
 
5
5
 
6
6
 
7
- notを受けるのがシーケンス(文字列、リストなど)である場合、
7
+ notを受けるのがシーケンス(**註**)である場合、not seq は len(seq) == 0 と同意です。
8
8
 
9
- not seq は len(seq) == 0 と同意であると思って良いでしょう
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

整理

2019/07/06 10:00

投稿

LouiS0616
LouiS0616

スコア35660

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なのは空文字だからです。