Python 从函数返回值
我想知道如何返回Python 从函数返回值,python,return,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): i
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
我只想要卡片的名字。简单!只要写
cardn = self.card_check(deal)
轻松点!只要写
cardn = self.card_check(deal)
在您的情况下,我看到其他人的响应是
cardn=self.card\u check(deal)
,但是card\u 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之间的整数,如果不是,则引发异常
还可以尝试使用Python工具,如。它们显示了一些警告,并且应该注意,您的方法中没有使用
self
。在您的情况下,我看到其他人的响应是cardn=self.card\u check(deal)
,但是card\u 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之间的整数,如果不是,则引发异常
还可以尝试使用Python工具,如。它们显示了一些警告,并且应该注意,您的方法中没有使用
self
。一些建议。您可以创建一个列表或哈希表,将卡号映射到卡名
def card_name(index):
card_names = { 1: "Ace", 11: "Jack" }
return card_names[index]
您的交易实现(使用randint)并不正确。它使每次抽签的概率独立于以前的抽签。这适用于轮盘赌,但不适用于21点。在21点游戏中,你可能会用完所有的ACE:-)。一些建议。您可以创建一个列表或哈希表,将卡号映射到卡名
def card_name(index):
card_names = { 1: "Ace", 11: "Jack" }
return card_names[index]
您的交易实现(使用randint)并不正确。它使每次抽签的概率独立于以前的抽签。这适用于轮盘赌,但不适用于21点。在21点游戏中,您可能会用完ACE:-)。不同的方式
def card_check(x):
return {
1 : 'Ace',
11 : 'Jack',
12 : 'Queen',
13 : 'King',
}[x]
print card_check(1)
输出
Ace
不同的方式,
def card_check(x):
return {
1 : 'Ace',
11 : 'Jack',
12 : 'Queen',
13 : 'King',
}[x]
print card_check(1)
输出
Ace
你不需要合适的词语,你需要一个基本的。代码应该是
cardn=self.card\u check(deal)
你不需要正确的单词,你需要一个基本的。代码应该是cardn=self.card\u check(deal)
-\u-:(头脑空白抱歉。我标记了这个问题,所以希望版主能记下来。非常愚蠢的问题:我-\u-:(头脑空白抱歉。我标记了这个问题,所以希望版主能记下来。非常愚蠢的问题:是的……我只是有点胡闹:)但我一定会解决这个问题,并确保不添加重复卡。谢谢:0@ReallyGoodPie最好的方法是在程序开始时创建一张牌组中所有牌的列表。然后每次你想要交易时,都创建一份该列表的副本(mycopy=list(mydeck)
),使用洗牌,然后通过调用mycopy.pop()
)来处理卡片。亲爱的,我喜欢你如何从最愚蠢的问题开始,然后获得大量的技巧和窍门来改进你的程序^ ^并学习20个新东西!这就是为什么我喜欢堆栈溢出:是的……我只是有点胡闹:)但我肯定会解决这个问题,并确保没有重复卡添加。谢谢你:0@ReallyGoodPie最好的方法是在程序开始时创建一个卡片组中所有卡片的列表。然后,每次你想发牌的时候,创建一份名单的副本(mycopy=list(mydeck)
),用洗牌,然后通过调用mycopy.pop()
)发牌。亲爱的,我喜欢你如何从最愚蠢的问题开始,然后获得大量的提示和技巧,让你的程序更好,并学习20个新东西!这就是为什么我喜欢堆栈溢出:D