[英]Python Blackjack game - referenced before assignment
因此,我個人面臨的挑戰是用python創建一個簡單的21點游戲。 這就是我這樣做的方式:
singlePlayerCard = random.choice(availableCards)
singlePlayerCard2 = random.choice(availableCards)
if(singlePlayerCard == [1,2,3,4,5,6,7,8,9,10]):
singlePlayerCardValue = singlePlayerCard
if(singlePlayerCard2 == [1,2,3,4,5,6,7,8,9,10]):
singlePlayerCard2Value = singlePlayerCard2
singlePlayerCardValueTotal = singlePlayerCardValue+singlePlayerCard2Value
print ("The total of your card values is %i"%singlePlayerCardValueTotal)
當要打印singlePlayerCardValueTotal
它告訴我在分配之前已引用了singlePlayerCardValue
或singlePlayerCard2Value
。 過去我曾用我編寫的另一個簡單程序遇到過此問題,但在這里結構有所不同,這使我有些困惑。 除了上述問題,它工作正常。 另外,如果您有時間,請在必要時通知我某些方面的更好解決方案。
一如既往,預先感謝! :)
正如您在評論中指出的那樣,“在賦值之前先進行引用”意味着您已經在給變量賦值之前提到了它。
看來您的問題是這樣的:
if(singlePlayerCard == [1,2,3,4,5,6,7,8,9,10]):
singlePlayerCardValue = singlePlayerCard
由於您的singlePlayerCard
永遠不會等於列表[1,2,3,4,5,6,7,8,9,10]
,因此當它是singlePlayerCard
,您將不會為該變量分配值。
==
運算符不是檢查列表是否包含值的方法。 試試這個,代替:
if(singlePlayerCard in [1,2,3,4,5,6,7,8,9,10]):
singlePlayerCardValue = singlePlayerCard
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.