📅  最后修改于: 2023-12-03 14:58:41.143000             🧑  作者: Mango
在这个项目中,我们将创建一个Python程序,用于随机播放一副纸牌并回答查询。这个程序将随机生成一副纸牌的顺序并将其存储在一个列表中。接着,程序将询问用户想要查询哪张牌,并使用简单的逻辑来回答查询。
程序的设计将分为以下几个步骤:
创建一副扑克牌:对于这个步骤,我们将创建一个函数用于生成一副扑克牌并将其存储在一个列表中。每个扑克牌将由一个元组表示,元组中包含两个元素:牌面和花色。
随机排列扑克牌:对于这个步骤,我们将使用Python内置的random模块中的shuffle函数来随机排列扑克牌列表。
询问用户:我们将要求用户输入要查询的牌面和花色。
回答查询:根据用户的输入,我们将在扑克牌列表中查找并回答查询。
以下是程序的实现。请将其保存在一个名为“poker.py”的文件中。
import random
def create_deck():
"""
创建一副扑克牌
:return: 由扑克牌元组组成的列表
"""
faces = ["2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"]
suits = ["spades", "hearts", "diamonds", "clubs"]
deck = [(face, suit) for face in faces for suit in suits]
return deck
def shuffle_deck(deck):
"""
随机排列一副扑克牌
:param deck: 扑克牌列表
:return: None
"""
random.shuffle(deck)
def get_card(deck, face, suit):
"""
查找一个特定的扑克牌
:param deck: 扑克牌列表
:param face: 牌面
:param suit: 花色
:return: 若存在牌面和花色与输入相同的牌,则返回该牌的元组,否则返回空元组
"""
for card in deck:
if card[0] == face and card[1] == suit:
return card
return ()
if __name__ == "__main__":
deck = create_deck()
shuffle_deck(deck)
face = input("请输入牌面:")
suit = input("请输入花色:")
card = get_card(deck, face, suit)
if card:
print(f"找到了:{card}")
else:
print("未找到。")
在程序中,我们首先调用了create_deck函数来生成一副扑克牌。接着,我们使用shuffle_deck函数来随机排列扑克牌列表。然后,我们要求用户输入要查询的牌面和花色。最后,我们调用get_card函数查找并回答查询。
请在命令行中运行程序,按照提示输入要查询的牌面和花色。以下是一些测试输入及其对应的输出。
请输入牌面:10
请输入花色:spades
找到了:('10', 'spades')
请输入牌面:K
请输入花色:hearts
找到了:('K', 'hearts')
请输入牌面:Q
请输入花色:clubs
找到了:('Q', 'clubs')
请输入牌面:A
请输入花色:diamonds
找到了:('A', 'diamonds')
请输入牌面:7
请输入花色:clubs
未找到。
你可以试着输入一些其他的牌面和花色进行测试。