teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

修正・追記

2019/02/16 13:09

投稿

LouiS0616
LouiS0616

スコア35678

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

1

追記

2019/02/16 13:09

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -6,4 +6,12 @@
6
6
  空でないときの動作
7
7
  ```
8
8
 
9
- if values: は、Pythonにおいては if len(values) == 0: と同じように働きます。
9
+ if values: は、Pythonにおいては if len(values) == 0: と同じように働きます。
10
+ 実は if x == "": も同様に if x: と書けます。if x != "": なら if not x: です。
11
+
12
+ コードの書き方について
13
+ ---
14
+ teratailには、コードを見やすく表示する機能があります。
15
+ 質問編集画面を開き、コードを選択した状態で<code>ボタンを押してください。
16
+ ![Python](56957fe805d9d7befa7dba6a98676d2b.gif)
17
+ 特にPythonの場合、インデントが崩れるとコードの意味が変わってしまいます。