回答編集履歴

2

修正・追記

2019/02/16 13:09

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -14,9 +14,37 @@
14
14
 
15
15
 
16
16
 
17
- if values: は、Pythonにおいては if len(values) == 0: と同じように働きます。
17
+ if values: は、Pythonにおいては if len(values) != 0: と同じように働きます。**(註)**
18
18
 
19
- 実は if x == "": も同様に if x: と書けます。if x != "": なら if not x: です。
19
+ 実は if x != "": も同様に if x: と書けます。if x == "": なら if not x: です。
20
+
21
+
22
+
23
+ ---
24
+
25
+ **註:**
26
+
27
+ コメントにも指摘があるとおり、これはシーケンスに限った記述です。
28
+
29
+ リファレンスにはもう少し詳しく正確な解説があります。
30
+
31
+ > オブジェクトは、デフォルトでは真と判定されます。ただしそのクラスが `__bool__()` メソッドを定義していて、それが False を返す場合、または `__len__()` メソッドを定義していて、それが 0 を返す場合は偽と判定されます。
32
+
33
+
34
+
35
+ > 主な組み込みオブジェクトで偽と判定されるものを次に示します:
36
+
37
+
38
+
39
+ > - 偽であると定義されている定数: None と False
40
+
41
+ > - 数値型におけるゼロ: 0, 0.0, 0j, Decimal(0), Fraction(0, 1)
42
+
43
+ > - 空のシーケンスまたはコレクション: '', (), [], {}, set(), range(0)
44
+
45
+
46
+
47
+ 引用元:[Python 標準ライブラリ » 組み込み型 » 真理値判定](https://docs.python.jp/3/library/stdtypes.html#truth)
20
48
 
21
49
 
22
50
 

1

追記

2019/02/16 13:09

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -15,3 +15,19 @@
15
15
 
16
16
 
17
17
  if values: は、Pythonにおいては if len(values) == 0: と同じように働きます。
18
+
19
+ 実は if x == "": も同様に if x: と書けます。if x != "": なら if not x: です。
20
+
21
+
22
+
23
+ コードの書き方について
24
+
25
+ ---
26
+
27
+ teratailには、コードを見やすく表示する機能があります。
28
+
29
+ 質問編集画面を開き、コードを選択した状態で<code>ボタンを押してください。
30
+
31
+ ![Python](56957fe805d9d7befa7dba6a98676d2b.gif)
32
+
33
+ 特にPythonの場合、インデントが崩れるとコードの意味が変わってしまいます。