我想知道如何返回
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
我想要的就是卡片的名称。
答案 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