0

返品方法を知りたい

cardn

に戻る

__init___

私のプログラムの一部であり、ここで続けることができます。これはクラスにあります。

'''the dealing'''
    while card_count != 2:
        deal = random.randint(1,13)
        self.card_check(deal)
        print(cardn)
        card_count += 1




def card_check(self, card):
        if card == 1:
            cardn = "Ace"
        elif card == 11:
            cardn = "Jack"
        elif card == 12:
            cardn = "Queen"
        elif card == 13:
            cardn = "King"
        return cardn

私が欲しいのはカードの名前だけです。

4

4 に答える 4

1

簡単!書くだけ

cardn = self.card_check(deal)
于 2013-01-17T13:54:09.913 に答える
1

いくつかの提案。カード番号をカード名にマッピングするリストまたはハッシュテーブルを作成できます。

def card_name(index):
    card_names = { 1: "Ace", 11: "Jack" }
    return card_names[index]

(randint を使用した) 処理の実装は、実際には適切ではありません。これにより、各抽選の確率が以前の抽選とは無関係になります。これはルーレットには適していますが、ブラックジャックには当てはまりません。ブラックジャックでは、エースが不足する可能性があります:-)。

于 2013-01-17T14:09:26.033 に答える
1

あなたの場合、他の人が で応答していることがわかりますcardn = self.card_check(deal)が、card_check()では何もしませんself。だから、それはただの機能です。メソッドの場合は、値を返す代わりに、クラス メンバーを設定できます。

def card_check(self, card):
    if card == 1:
        self.cardn = "Ace"
    elif card == 11:
        self.cardn = "Jack"
    elif card == 12:
        self.cardn = "Queen"
    elif card == 13:
        self.cardn = "King"
    else
        self.cardn = str(card)

cardnは他の数値にも設定されていることに注意してください。ただし、2 から 10 までの整数であるかどうかを確認し、そうでない場合は例外を発生させることができます。

また、pylintなどの Python ツールを使用してみてください。selfいくつかの警告が表示され、メソッドで使用されていないことに気付くはずです。

于 2013-01-17T14:05:00.297 に答える
0

別の方法、

def card_check(x):
   return {
      1  : 'Ace',
      11 : 'Jack',
      12 : 'Queen',
      13 : 'King',
   }[x]


print card_check(1)

出力

Ace
于 2013-01-17T14:35:38.517 に答える