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

回答編集履歴

3

追記

2019/04/13 11:04

投稿

quickquip
quickquip

スコア11327

answer CHANGED
@@ -8,4 +8,11 @@
8
8
  ```
9
9
  でしょうかね。
10
10
 
11
- 短く書かないほうが**読みやすい**ケースだと思いますけれども。
11
+ 短く書かないほうが**読みやすい**ケースだと思いますけれども。
12
+
13
+ ----
14
+
15
+ [https://docs.python.org/ja/3/reference/expressions.html#boolean-operations](https://docs.python.org/ja/3/reference/expressions.html#boolean-operations)
16
+
17
+ `a or b`を評価すると、aが真値ならaと、偽値ならbとなります。
18
+ `dic.get('test')`で、キーがなくて`None`になるか、`None`や空文字がとりだされたときは`or`の右の空文字で評価されます。

2

追記

2019/04/13 11:04

投稿

quickquip
quickquip

スコア11327

answer CHANGED
@@ -3,6 +3,8 @@
3
3
  ```python
4
4
  if (dic.get('test') or '').strip():
5
5
  ...
6
+ else:
7
+ ... # こっちがエラー
6
8
  ```
7
9
  でしょうかね。
8
10
 

1

些細

2019/04/13 07:37

投稿

quickquip
quickquip

スコア11327

answer CHANGED
@@ -1,9 +1,9 @@
1
1
  `None`が入っているのが最大の問題だと思いますが、
2
2
  短く書きたいなら
3
- ```
3
+ ```python
4
4
  if (dic.get('test') or '').strip():
5
5
  ...
6
6
  ```
7
7
  でしょうかね。
8
8
 
9
- 短く書かないほうが断然**い**と思いますけれども。
9
+ 短く書かないほうが**読みやすい**ケースだと思いますけれども。