嗨,我真的是一个完全初学者任何帮助或建议是非常感谢我正在努力学习下面的代码,但当我执行代码,我什么都没有得到 我尽我所能,但它给了我很多错误。请原谅看看有什么建议谢谢
import random
ranks = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A']
suits = ['Hearts', 'Clubs', 'Spades', 'Diamonds']
class Card:
def c1(self, rank, suit):
self.rank = rank
self.suit = suit
def value(self):
if self.rank in ['J', 'Q', 'K']:
return 10
elif self.rank == 'A':
return 1,11
else:
return int(self.rank)
def c2_(self):
return self.rank + '-' + self.suit
class Deck:
def d1(self):
self.cards = []
for rank in ranks:
for suit in suits:
c = Card(rank, suit)
self.cards.append(c)
def shuffle(self):
random.shuffle(self.cards)
def draw_card(self):
if not self.cards:
raise Exception("No more cards: empty deck!")
card = self.cards.pop()
return card
def d2(self):
cards = []
for c in self.cards:
cards.append(str(c))
return str(cards)
def test2(self):
deck = Deck()
print
print deck
deck.shuffle()
print
print deck
tryss= Deck()
tryss.d1()
tryss.draw_card()
tryss.dshuffle()
tryss.d2()
tryss.test2()
正如其他人所说,你有相当数量的缩进错误,那些你将不得不追查。你知道吗
您将遇到的主要问题是没有用任何东西初始化类。如果将c1和d1函数更改为
__init__
,它将初始化它们,使之成为一个类项,然后可以使用self
访问。你知道吗否则,对于
test2
中的打印,不要通过执行print(deck)
来打印类项,而是使用deck.d2()
来打印值,因为存在这种情况可以将卡片组中的卡片串化。你知道吗函数
d2
也有一个错误,因为它应该是str(c.c2_())
,因为这是将卡名字符串化的函数。你知道吗你仍然有很多东西要从中得到一个21点游戏,但这至少应该让当前的代码接近功能。如果你对不起作用的东西有一个清晰的描述,那么请修改问题来问这个问题。你知道吗
你的程序有太多问题:
Card
中,您定义了一个名为c1
的方法,但它意味着类的构造函数。你知道吗Deck
中的d1
也是一个构造函数。所以,我把它从你的全球通话中删除了除此之外,你做的
print
没有任何争论。在这种情况下,您只需执行print('')
。你知道吗这是您的代码,带有适当的缩进,以及用于Python2和Python3的
print
语句。你知道吗相关问题 更多 >
编程相关推荐