Pregunta

Por lo tanto, mi reto personal es hacer un simple juego de Blackjack en python.Esta es la forma en que he ido haciendo:

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)

Cuando se trata de imprimir el singlePlayerCardValueTotal me dice que singlePlayerCardValue o singlePlayerCard2Value ha hecho referencia antes de la asignación.Es que me confunde ligeramente como he tenido este problema en el pasado con otro sencillo programa que he hecho, pero la estructura es diferente aquí.Aparte de la cuestión antes mencionada, se estaba trabajando bien.También si usted tiene el tiempo, por favor, me informen de alguna solución mejor para algunas áreas, si es necesario.

Como siempre, gracias de antemano!:)

¿Fue útil?

Solución

Como señaló en su comentario, "hace referencia a antes de la asignación" significa que usted ha mencionado una variable antes de que se le ha dado un valor.

Parece que tu problema es este:

if(singlePlayerCard == [1,2,3,4,5,6,7,8,9,10]):
    singlePlayerCardValue = singlePlayerCard

Desde su singlePlayerCard nunca es igual la lista [1,2,3,4,5,6,7,8,9,10], usted no va a asignar un valor a la variable cuando se trata de un número de tarjeta.

El == el operador no es la manera de comprobar si una lista contiene un valor.Pruebe esto en su lugar:

if(singlePlayerCard in [1,2,3,4,5,6,7,8,9,10]):
    singlePlayerCardValue = singlePlayerCard
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top