为了在程序中编码一张扑克牌,我们将使用一个带有两个键的字典:“值”和“颜色”。
对于卡片的价值,A将由'A'表示,2由整数2表示,3由整数3表示,10由10表示。对于数字,我们将分别写为'V','D ' 和 'R' 代表杰克、王后和国王。
对于花色,我们想使用每个花色(红心cœurs、黑桃piques、方钻carreaux和梅花trèfles)的首字母大写,但由于红心和方钻具有相同的首字母,我们选择字母“K”来代表方钻。
因此字典 {'value':7, 'color': 'P'} 将代表黑桃 7。
列表 [{'value':7, 'color':'P'}, {'value':10, 'color':'K'}, {'value':'D', 'color':'K '}]
将对应以下成功状态:
7♠ 10♦ D♦
在 Python 中,每个字符对应一个整数,该整数编码该字符。例如,要知道字母“a”的代码是什么,您必须显示 ord(a)。然后你会发现与字符'a'关联的整数是97。相反,要获得与给定整数对应的字符,你必须使用chr函数。因此,例如 chr(97) 将返回 'a'。以下是对您有帮助的代码:
♥♠♦♣
特点
编码
♠
9824
♥
9825
♦
9826
♣
9827
因此,例如,要创建允许显示菱形皇后的字符串,有必要这样做:'D' + chr(9826)
编写函数carte_to_chaine,它接受一个表示卡片的字典作为参数,并返回一个字符串,允许显示相应的卡片,3 个字符,左边可能有一个空格。所有不是 10 的牌都需要一个空格。注意,此功能不会产生任何显示。
示例:(空格已由字符具体化)
card_to_string({'value':7, 'color':'P'}) 返回字符串 ".7♠"
card_to_string({'value':10, 'color':'K'}) 返回字符串“10♦”
card_to_string({'value':'R', 'color':'C'}) 返回字符串“.R♥”
编写一个 display_success 函数,该函数将与给定时刻的成功状态相对应的卡片列表作为参数并显示成功。我们将使用 carte_to_chaine 函数。不同的卡片将显示在同一行,由空格分隔(除了可能由 carte_to_chaine 放置的卡片)。
例子 :
print_success([{'value':7, 'color':'P'}, {'value':10, 'color':'K'}, {'value':'A', 'color':'T '}]) 将显示“7♠ 10♦ A♣”后跟一个换行符(2 个换行符)。
这个很简单用一个对照的字典进行替换即可
你题目的解答代码如下:
def card_to_string(dic):
cs = {"P":chr(9824),"C":chr(9825),"K":chr(9826),"T":chr(9827)}
return f'{dic["value"]:>2}{cs[dic["color"]]}'
def print_success(lst):
res = []
for d in lst:
res.append(card_to_string(d))
print(" ".join(res))
print_success([{'value':7, 'color':'P'}, {'value':10, 'color':'K'}, {'value':'A', 'color':'T'}])
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
没看懂你想要问什么。
是想帮你做程序还是点拨一下?