回答編集履歴

1

追記

2019/09/20 10:00

投稿

LouiS0616
LouiS0616

スコア35668

test CHANGED
@@ -43,3 +43,71 @@
43
43
 
44
44
 
45
45
  結局は素直にif文を使う方法が一番良いです。紹介した方法は推奨しません。
46
+
47
+
48
+
49
+ おまけ:if文を置き換える汎用的な方法は?
50
+
51
+ ---
52
+
53
+ **条件演算子の利用**
54
+
55
+ ```Python
56
+
57
+ >>> print('"{}"'.format(s) if isinstance(s, str) else s)
58
+
59
+ "spam"
60
+
61
+ >>> print('"{}"'.format(n) if isinstance(n, str) else n)
62
+
63
+ 42
64
+
65
+ ```
66
+
67
+
68
+
69
+ 俗称では有りますが、**三項演算子**や**if式**と呼ぶ人もいます。
70
+
71
+
72
+
73
+ ---
74
+
75
+ **リストや辞書の利用**
76
+
77
+ ```Python
78
+
79
+ >>> print(['"{}"', '{}'][isinstance(s, int)].format(s))
80
+
81
+ "spam"
82
+
83
+ >>> print(['"{}"', '{}'][isinstance(n, int)].format(n))
84
+
85
+ 42
86
+
87
+ ```
88
+
89
+
90
+
91
+ ```Python
92
+
93
+ >>> print(
94
+
95
+ ... {str: '"{}"', int: '{}'}[type(s)].format(s)
96
+
97
+ ... )
98
+
99
+ "spam"
100
+
101
+ >>> print(
102
+
103
+ ... {str: '"{}"', int: '{}'}[type(n)].format(n)
104
+
105
+ ... )
106
+
107
+ 42
108
+
109
+ ```
110
+
111
+
112
+
113
+ 半ば遊びです。後者はぎりぎり使い道があるかも。