Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 创建战争游戏(卡片)——打印卡片时遇到问题_Python_Class_Object_Methods - Fatal编程技术网

Python 创建战争游戏(卡片)——打印卡片时遇到问题

Python 创建战争游戏(卡片)——打印卡片时遇到问题,python,class,object,methods,Python,Class,Object,Methods,这是我目前掌握的代码。它运行,但当我希望它打印为“心的9”(又名卡片描述符)时,输出结果是“(name)绘制了1中的9)。有没有关于我做错了什么的线索??如何让getRank将字符串描述返回到self.rank?另外,我没有包括战争游戏的其他代码,因为它完全有效,只是我返回军衔和西装的方式。但是,如果添加它对我有帮助,我会的 class PlayingCard: # constructor def __init__(self, rankNum, suitNum):

这是我目前掌握的代码。它运行,但当我希望它打印为“心的9”(又名卡片描述符)时,输出结果是“(name)绘制了1中的9)。有没有关于我做错了什么的线索??如何让getRank将字符串描述返回到self.rank?另外,我没有包括战争游戏的其他代码,因为它完全有效,只是我返回军衔和西装的方式。但是,如果添加它对我有帮助,我会的

class PlayingCard:

    # constructor
    def __init__(self, rankNum, suitNum):
        self.rank = rankNum
        self.suit = suitNum

    def __str__(self):
        return "{} of {}".format(self.rank, self.suit)
    
    def getRank(self):
        if  self.rank == 11:
            return "Jacks"
        elif self.rank == 12:
            return "Queen"
        elif self.rank == 13:
            return  "King"
        elif self.rank == 14:
            return "Ace"
        else:    
            return self.rank
    
    def getSuit(self):
        if self.suit == 1:
            return "Clubs"
        elif self.suit == 2:
            return "Hearts"
        elif self.suit == 3:
            return "Diamonds"
        elif self.suit == 4:
            return "Spades"
                    
    def equals(self, otherCard):
        if self.rank == otherCard.rank and self.suit == otherCard.suit:
            return True
        else:
            return False

    def trumps(self, otherCard):
        if self.rank > otherCard.rank:
            return True
        else:
            return False
这是返回自我等级和自我套装

因此,它将返回2个中的
11个,而不是
Jack of Hearts

要返回《红心杰克》,您需要将代码更改为:

def __str__(self):
        return "{} of {}".format(self.rank, self.suit)

如果要打印suitTry的名称,需要使用
self.getSuit()
返回{}.format(self.getRank(),self.getSuit())
,以便函数调用的返回值成为“format”调用的参数。您只需执行返回条件
def __str__(self):
        return "{} of {}".format(self.getRank(), self.getSuit())