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

回答編集履歴

4

説明を戻す

2020/05/06 04:04

投稿

shiracamus
shiracamus

スコア5406

answer CHANGED
@@ -4,5 +4,5 @@
4
4
  https://docs.python.org/ja/3/library/stdtypes.html#truth
5
5
  > オブジェクトは、デフォルトでは真と判定されます。ただしそのクラスが `__bool__()` メソッドを定義していて、それが `False` を返す場合、または `__len__()` メソッドを定義していて、それが `0` を返す場合は偽と判定されます。
6
6
 
7
- `queue.Queue` には `__bool__` も `__len__` も定義されていないため、`bool(queue)` は真と判定、つまり `True` になります。
7
+ `queue.Queue` には `__bool__` も `__len__` も定義されていないため、`bool(queue)` は常に真と判定、つまり `True` になります。
8
8
  したがって、`while queue:` は `while True:` と同等で無限ループになります。

3

説明を少し変更

2020/05/06 04:04

投稿

shiracamus
shiracamus

スコア5406

answer CHANGED
@@ -4,5 +4,5 @@
4
4
  https://docs.python.org/ja/3/library/stdtypes.html#truth
5
5
  > オブジェクトは、デフォルトでは真と判定されます。ただしそのクラスが `__bool__()` メソッドを定義していて、それが `False` を返す場合、または `__len__()` メソッドを定義していて、それが `0` を返す場合は偽と判定されます。
6
6
 
7
- `queue.Queue` には `__bool__` も `__len__` も定義されていないため、`bool(queue)` は常に真と判定、つまり `True` になります。
7
+ `queue.Queue` には `__bool__` も `__len__` も定義されていないため、`bool(queue)` は真と判定、つまり `True` になります。
8
8
  したがって、`while queue:` は `while True:` と同等で無限ループになります。

2

説明を少し変更

2020/05/06 04:00

投稿

shiracamus
shiracamus

スコア5406

answer CHANGED
@@ -4,5 +4,5 @@
4
4
  https://docs.python.org/ja/3/library/stdtypes.html#truth
5
5
  > オブジェクトは、デフォルトでは真と判定されます。ただしそのクラスが `__bool__()` メソッドを定義していて、それが `False` を返す場合、または `__len__()` メソッドを定義していて、それが `0` を返す場合は偽と判定されます。
6
6
 
7
- `queue.Queue` には`__bool__` も `__len__` も定義されていないため、`bool(queue)` は常に `True` になります。
7
+ `queue.Queue` には `__bool__` も `__len__` も定義されていないため、`bool(queue)` は常に真と判定、つまり `True` になります。
8
- したがって、`while queue:` は `while True` と同等で無限ループになります。
8
+ したがって、`while queue:` は `while True:` と同等で無限ループになります。

1

引用部分のエスケープ処理。不要記述削除

2020/05/06 03:59

投稿

shiracamus
shiracamus

スコア5406

answer CHANGED
@@ -2,11 +2,7 @@
2
2
  `while queue:` は `while bool(queue):` と同等です。
3
3
  `bool`関数 は、以下のように真偽値判定します。
4
4
  https://docs.python.org/ja/3/library/stdtypes.html#truth
5
- > オブジェクトは、デフォルトでは真と判定されます。ただしそのクラスが __bool__() メソッドを定義していて、それが False を返す場合、または __len__() メソッドを定義していて、それが 0 を返す場合は偽と判定されます。 1 主な組み込みオブジェクトで偽と判定されるものを次に示します:
5
+ > オブジェクトは、デフォルトでは真と判定されます。ただしそのクラスが `__bool__()` メソッドを定義していて、それが `False` を返す場合、または `__len__()` メソッドを定義していて、それが `0` を返す場合は偽と判定されます。
6
6
 
7
- > * 偽であると定義されている定数: None と False
8
- > * 数値型におけるゼロ: 0, 0.0, 0j, Decimal(0), Fraction(0, 1)
9
- > * 空のシーケンスまたはコレクション: '', (), [], {}, set(), range(0)
10
-
11
7
  `queue.Queue` には、`__bool__` も `__len__` も定義されていないため、`bool(queue)` は常に `True` になります。
12
8
  したがって、`while queue:` は `while True` と同等で無限ループになります。