从函数返回值

时间:2013-01-17 13:50:06

标签: python return

我想知道如何返回

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 个答案:

答案 0 :(得分:1)

轻松!只需写下

cardn = self.card_check(deal)

答案 1 :(得分: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

答案 2 :(得分:1)

一些建议。您可以创建将卡号映射到卡名称的列表或哈希表。

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

您执行交易(使用randint)并不合适。它使每次平局的概率与先前的平局无关。这适合轮盘赌,但不适合二十一点。在二十一点你可以用完ace: - )。

答案 3 :(得分:0)

不同的方式,

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


print card_check(1)

<强>输出

Ace