python - 如何将二十一点游戏的两个重复 for 循环转换为单个函数

标签 python python-3.x list function

我正在创建一个二十一点游戏,并且我熟悉游戏规则。但我的难题在其他地方。 我能够随机将卡片附加到计算机和用户。但为了这个目的,我写了两次 for 循环。我只想编写一个函数,用于将两组不同卡随机分配给用户和计算机。为了更好地理解,我添加了下面的代码

import random
print("Welcome to Blackjack!")
cards = [11, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10]

def deal_cards():
  return random.choice(cards)


user_cards = []
for _ in range(2):
  card = random.choice(cards)
  if card in user_cards:
    continue
  else:
    user_cards.append(card)


computer_cards = []
for _ in range(2):
  card = random.choice(cards)
  if card in computer_cards:
    continue
  else:
    computer_cards.append(card)

print(user_cards)
print(computer_cards)

最佳答案

你可以尝试这样的事情

def deal_hand():
    hand = []
    for _ in range(2):
        card = random.choice(cards)
        if card in hand:
            continue
        else:
            hand.append(card)
    return hand

然后

user_hand = deal_hand()
dealer_hand = deal_hand()

关于python - 如何将二十一点游戏的两个重复 for 循环转换为单个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69782537/

相关文章:

java - Android java循环遍历对象列表

list - Prolog - 如何返回每个元素仅出现一次的列表?

Python 无法正确求和列表

python - Plotly:如何自定义 3D 散点图的符号?

python - 从python中的数组中选择随机样本

python - 为什么设置自动解包范围,但列表不?如何使用它?

python - 如何在 IPython shell 中获取或激活虚拟环境?

python - Pandas to_csv(sys.stdout) 在我的环境下不起作用

python - 如何在Python中将一列分成多列?

python - 无法在 ubuntu 16.04.2 上的 tkinter 中使用 tk.mainloop()