簡體   English   中英

Python 21點游戲-分配前引用

[英]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它告訴我在分配之前已引用了singlePlayerCardValuesinglePlayerCard2Value 過去我曾用我編寫的另一個簡單程序遇到過此問題,但在這里結構有所不同,這使我有些困惑。 除了上述問題,它工作正常。 另外,如果您有時間,請在必要時通知我某些方面的更好解決方案。

一如既往,預先感謝! :)

正如您在評論中指出的那樣,“在賦值之前先進行引用”意味着您已經在給變量賦值之前提到了它。

看來您的問題是這樣的:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM