Gioco di Blackjack Python - riferito prima dell'assegnazione
-
26-12-2019 - |
Domanda
Allora, la mia sfida personale è creare un semplice gioco di Blackjack in Python.Questo è il modo in cui sono andato a farlo:
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)
.
Quando si tratta di stampare il singlePlayerCardValueTotal
, mi dice che singlePlayerCardValue
o singlePlayerCard2Value
è stato referenziale prima dell'assegnazione.Mi ha confuso leggermente come ho avuto questo problema in passato con un altro semplice programma che ho fatto, ma la struttura è diversa qui.Oltre al suddetto problema, stava lavorando bene.Inoltre, se hai il tempo, ti preghiamo di informarmi di soluzioni migliori ad alcune aree se necessario.
Come sempre, grazie in anticipo!:)
Soluzione
Come hai notato nel tuo commento, "referenziato prima di assegnazione" significa che hai menzionato una variabile prima che sia stata data un valore.
Sembra che il tuo problema sia questo:
if(singlePlayerCard == [1,2,3,4,5,6,7,8,9,10]):
singlePlayerCardValue = singlePlayerCard
.
Poiché il tuo singlePlayerCard
non è mai uguale a L'elenco [1,2,3,4,5,6,7,8,9,10]
, non assegnerà un valore alla variabile quando è una scheda numerica.
L'operatore ==
non è il modo per verificare se un elenco contiene un valore.Prova questo, invece:
if(singlePlayerCard in [1,2,3,4,5,6,7,8,9,10]):
singlePlayerCardValue = singlePlayerCard
.