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

回答編集履歴

2

誤字

2019/01/25 23:27

投稿

katoy
katoy

スコア22328

answer CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  まずは数字で比較する、数字が同じ時はスーツ(種類)で比較する。
24
24
 
25
- True を返す城ジェンを or や and でつなげて
25
+ True を返す条件を or や and でつなげて
26
26
  return True と Return False が それぞれ 1 箇所だけにすることも可能ですね。
27
27
 
28
28
  数字 * 100 +スーツの数 でカードを点数化すれば、その点数の比較をするだけで済ますこともできそうです。

1

追記

2019/01/25 23:27

投稿

katoy
katoy

スコア22328

answer CHANGED
@@ -25,4 +25,22 @@
25
25
  True を返す城ジェンを or や and でつなげて
26
26
  return True と Return False が それぞれ 1 箇所だけにすることも可能ですね。
27
27
 
28
- 数字 * 100 +スーツの数 でカードを点数化すれば、その点数の比較をするだけで済ますこともできそうです。
28
+ 数字 * 100 +スーツの数 でカードを点数化すれば、その点数の比較をするだけで済ますこともできそうです。
29
+
30
+ 質問文にあるコードの最適化を進めていくと
31
+ ```python3
32
+ if (self.value > c2.value) or (self.value == c2.value and self.suit > c2.suit):
33
+ return True
34
+ return False
35
+ ```
36
+
37
+ となります。(reutrn True か return False でメソッドが終了する)
38
+
39
+ でも つぎのように
40
+ ```python3
41
+ if self.value == c2.value:
42
+ return self.value > c2.value
43
+ return self.suit > c2.suit
44
+ ```
45
+
46
+ と、return スーツの比較結果 か return 数字の比較結果 でメソッドが終了するのも良いかもしれません。