Python:如何漂亮地打印卡片

问题描述 投票:0回答:1

我刚开始学习python,然后这个纸牌游戏问世了,我不知道该怎么办。基本上,我需要创建一个for循环,并在其中向用户询问card:。最重要的是,我需要在main()之外定义一个函数,例如def ppcard(card):,然后打印出该卡的“漂亮打印”版本。如果用户放置卡片:4h,则输出应为Spade的4。所以这就是我感到困惑的地方,我尝试了很多次,但是我不知道如何才能完成漂亮的打印。我不知道如何将副牌中的值(例如“ 2s”中的“ s”)匹配到“锹”。

def main():
    rank = ['2','3','4','5','6','7','8','9','t','J','Q','K','A']
    suit = ['s','h','d','c']
    deck = []
    card = input('card:')
    for i in rank:
        for n in suit:
            combo = i + n
            deck = deck + [combo]

    for i in range( len( deck) ):
        if card not in deck:
            print('Not a card')
            continue

        if card == 00:
            print('Finished!')
            break

main()

suits = {s:"Spades",h:"Hearts",d:"Diamonds",c:"Clubs"}
ranks = {2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",t:"10",J:"Jack",Q:"Queen",K:"King",A:"Ace"}


def ppcard(card):
    for i in list(card):
        ranks[i] = card[0]
        suits[i] = card[1]
        print(ranks[i], 'of', suits[i])


ppcard()

python poker
1个回答
1
投票

您可以将card中的相应字母用作rankssuits字典的键:

def ppcard(card):
    print(ranks[card[0]], 'of', suits[card[1]])
© www.soinside.com 2019 - 2024. All rights reserved.