Python返回函数返回None而不是True

时间:2019-07-30 03:36:03

标签: python

我正在尝试完成计算机科学课的任务,并且我有一个函数应该返回True,但返回None。我还没有完成代码,但是本节应该可以正常工作。

代码确实在if语句中查找,因为我包含的其他打印件已经起作用。我还试图使代码返回变量,并在if语句中定义变量,这也行不通。

RANK_ORDER = '34567890JQKA2'
SUIT_ORDER = 'DCHS'
def is_higher(card1, card2):
    card1v = RANK_ORDER.index(card1[0][0])
    card2v = RANK_ORDER.index(card2[0][0])
    card1s = SUIT_ORDER.index(card1[1][:1])
    card2s = SUIT_ORDER.index(card2[1][:1])
    if card1v == card2v:
        if card1s > card2s:
            return True
        else: 
            return False
    elif card1v > card2v:
        return True
    else:
        return False

def sort_cards(cards):
    is_higher(cards[0], cards[1])

if __name__ == '__main__':
    print(sort_cards(['AS', '5H']))

该代码尚未对卡片进行排序,但是如果第一张卡片更高,则应该说True。这段代码不打印任何内容。

1 个答案:

答案 0 :(得分:2)

is_higher返回一个值为sort_cards的值,但您正在打印sort_cards的返回值,如果为None,则要打印sort_cards的返回值,即返回值的{{{ 1}} 。只需这样做:

is_higher