所以目前我正在做一個黑杰克游戲,其中卡片放在字典中,每個起始牌組都有一張從字典中取出的隨機卡片,但是當我執行代碼時,我得到一個 keyerror
代碼
# Black Jack
import random
from art import logo
print(logo)
cards = {
"ace": [1, 11],
"one": 1,
'two': 2,
'three': 3,
"four": 4,
"Five": 5,
"six": 6,
'seven': 7,
'eight': 8,
'nine': 9,
"king": 10,
"queen": 10,
"jack": 10,
"ten": 10
}
user_deck = []
computer_deck = []
user_deck.append(random.choice(cards))
computer_deck.append(random.choice(cards))
print(f"{computer_deck} \n {user_deck}" )
uj5u.com熱心網友回復:
random.choice(seq)做
從非空序列seq中回傳一個隨機元素。
你給它dict不是序列,你需要先將keys所說的轉換dict成序列,例如tuple替換
user_deck.append(random.choice(cards))
computer_deck.append(random.choice(cards))
使用
user_deck.append(random.choice(tuple(cards.keys())))
computer_deck.append(random.choice(tuple(cards.keys())))
uj5u.com熱心網友回復:
考慮按以下方式進行:
user_deck.append(random.choice(tuple(cards.keys())))
computer_deck.append(random.choice(tuple(cards.keys())))
問題是 random.choice() 接受必須支持__getitem__()和__len__()方法的 seq,它應該是串列或元組,而不是您傳遞的 set 或 dict。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/497494.html
下一篇:使用numpy從陣列中洗掉字串
