ソースコードは教えない方がいいという考え方もありますが、最初は真似から始めるものだと思いますし、クラスを使おうという意欲を買って回答します。
cardsというリストを宣言して、その中に作成したクラスを52個いれています。
cardsに入っているのは、クラスではなくインスタンスです。
cards.append =Card["ハート",1]
これは間違いなので実行時エラーになります。
初心者向けの関数
python
1def check0(変数1, 変数2, cards):
2 for card in cards:
3 if 変数1 == card.mark and 変数2 == card.number:
4 return True
5 return False
実行結果は以下です。
python
1>>> 変数1 = "ハート"
2>>> 変数2 = 1
3>>> check0(変数1, 変数2, cards)
4True
5>>> 変数1 = "ハート"
6>>> 変数2 = 14
7>>> check0(変数1, 変数2, cards)
8False
中級者向けの関数
ただし、この場合は初心者向けより遅いので迷うところです。
python
1def check1(変数1, 変数2, cards):
2 if [card for card in cards if (変数1 == card.mark and 変数2 == card.number)]:
3 return True
4 else:
5 return False
実行結果は以下です。
python
1>>> 変数1 = "ハート"
2>>> 変数2 = 1
3>>> check1(変数1, 変数2, cards)
4True
5>>> 変数1 = "ハート"
6>>> 変数2 = 14
7>>> check1(変数1, 変数2, cards)
8False
上級者向け
上級者は、クラス定義に気をつかいます。
python
1class Card:
2 def __init__(self, mark, number):
3 self.mark = mark
4 self.number = number
5 def __eq__(self, anotherCard):
6 if type(anotherCard) != Card:
7 return False
8 elif self.mark == anotherCard.mark and self.number == anotherCard.number:
9 return True
10 else:
11 return False
12 def __str__(self):
13 return f'{self.mark}{self.number}'
14
15cards = [Card(mark, number) for mark in ["スペード", "ハート", "ダイヤ", "クラブ"] for number in range(1,14)]
実行結果は以下です。
python
1>>> 変数1 = "ハート"
2>>> 変数2 = 1
3>>> check2(変数1, 変数2, cards)
4True
5>>> 変数1 = "ハート"
6>>> 変数2 = 14
7>>> check2(変数1, 変数2, cards)
8False