I'm making a blackjack game in python, but the .pop(0) method I'm using to get rid of cards comes up with an attribute error, does anyone know why?
for i in range(2):
drawnCard = newDeck.pop(0)
playerList.append(drawnCard)
if (drawnCard[:1] == "J" or drawnCard[:1] == "Q" or drawnCard[:1] == "K"):
playerSum += 10
elif (drawnCard[:1] == "A"):
playerSum += 11
elif ((drawnCard[:2]) == "10"):
playerSum += 10
else:
playerSum += int(drawnCard[:1])
here's the full code
from random import shuffle
deck = ["A♠", "2♠", "3♠", "4♠", "5♠", "6♠", "7♠", "8♠", "9♠", "10♠", "J♠", "Q♠", "K♠", "A♥", "2♥", "3♥", "4♥", "5♥", "6♥", "7♥", "8♥", "9♥", "10♥", "J♥", "Q♥", "K♥", "A♣", "2♣", "3♣", "4♣", "5♣", "6♣", "7♣", "8♣", "9♣", "10♣", "J♣", "Q♣", "K♣", "A♦", "2♦", "3♦", "4♦", "5♦", "6♦", "7♦", "8♦", "9♦", "10♦", "J♦", "Q♦", "K♦"]
newDeck = shuffle(deck)
playerList = []
playerSum = 0
dealerList = []
dealerSum = 0
for i in range(2):
drawnCard = newDeck.pop(0)
playerList.append(drawnCard)
if (drawnCard[:1] == "J" or drawnCard[:1] == "Q" or drawnCard[:1] == "K"):
playerSum += 10
elif (drawnCard[:1] == "A"):
playerSum += 11
elif ((drawnCard[:2]) == "10"):
playerSum += 10
else:
playerSum += int(drawnCard[:1])
if len(playerList) == 2:
if playerSum == 21:
if dealerSum != 21:
print ("Players Hand: ")
print (playerList)
print()
print ("Total: ")
print (playerSum)
print("Congrats, you got a blackjack!!!")
exit("Won Game")
if dealerSum == 21:
print ("Players Hand: ")
print (playerList)
print()
print ("Total: ")
print (playerSum)
print("You both got a blackjack, it's a tie!")
exit("Game Tied!")
playing = True
while(playing):
print ("Players Hand: ")
print (playerList)
print()
print ("Total: ")
print (playerSum)
user = input("Would you like to hit or stay? (h/s)\n")
if (user == "h"):
drawnCard = newDeck.pop(0)
playerList.append(drawnCard)
if (drawnCard[:1] == "J" or drawnCard[:1] == "Q" or drawnCard[:1] == "K"):
playerSum += 10
elif (drawnCard[:1] == "A"):
playerSum += 11
elif (drawnCard[:2] == "10"):
playerSum += 10
else:
playerSum += int(drawnCard[:1])
print ("Players Hand: ")
print (playerList)
print()
print ("Total: ")
print (playerSum)
print("---------------------------------------------------------------------------------------------------------------------------------------------------------------------")
if playerSum > 21:
if 'A' in playerList:
playerSum -= 10
else:
print ("Players Hand: ")
print (playerList)
print()
print ("Total: ")
print (playerSum)
print("Wow you suck at blackjack ._.")
exit("Game Lost!")
elif (user == "s"):
print("---------------------------------------------------------------------------------------------------------------------------------------------------------------------")
playing = False
for i in range(2):
drawnCard = newDeck.pop(0)
dealerList.append(drawnCard)
if (drawnCard[:1] == "J" or drawnCard[:1] == "Q" or drawnCard[:1] == "K"):
dealerSum += 10
elif (drawnCard[:1] == "A"):
dealerSum += 11
elif (drawnCard[:2] == "10"):
dealerSum += 10
else:
dealerSum += int(drawnCard[:1])
playing = True
while (playing):
if dealerSum >= 17:
playing = False
else:
drawnCard = newDeck.pop(0)
dealerList.append(drawnCard)
if (drawnCard[:1] == "J" or drawnCard[:1] == "Q" or drawnCard[:1] == "K"):
dealerSum += 10
elif (drawnCard[:1] == "A"):
dealerSum += 11
elif ((drawnCard[:2]) == "10"):
dealerSum += 10
else:
dealerSum += int(drawnCard[:1])
print ("Dealers Hand: ")
print (dealerList)
print()
print ("Total: ")
print (dealerSum)
print("---------------------------------------------------------------------------------------------------------------------------------------------------------------------")
if dealerSum > 21:
if "A" in dealerList:
dealerSum -= 10
else:
print("Players hand: ")
print(playerList)
print()
print("Total: ")
print(playerSum)
print("Dealers hand: ")
print(dealerList)
print()
print("Total: ")
print(dealerSum)
print("The dealer busted! Congrats!")
exit("Won Game! ")
if playing == False:
if (dealerSum > playerSum):
print("---------------------------------------------------------------------------------------------------------------------------------------------------------------------")
print("Final results: ")
print("Players hand: ")
print(playerList)
print()
print("Total: ")
print(playerSum)
print("Dealers hand: ")
print(dealerList)
print()
print("Total: ")
print(dealerSum)
print("You Lose!")
exit("Game Lost!")
elif (dealerSum < playerSum):
print("---------------------------------------------------------------------------------------------------------------------------------------------------------------------")
print("Final results: ")
print("Players hand: ")
print(playerList)
print()
print("Total: ")
print(playerSum)
print("Dealers hand: ")
print(dealerList)
print()
print("Total: ")
print(dealerSum)
print("You Win!")
exit("Game Won!")
else:
print("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------")
print("Final results: ")
print("Players hand: ")
print(playerList)
print()
print("Total: ")
print(playerSum)
print("Dealers hand: ")
print(dealerList)
print()
print("Total: ")
print(dealerSum)
print ("It's a tie!")
exit("Game Tied!")
name-MacBook-Air:Python name$ /usr/bin/env /usr/local/bin/python3 /Users/name/.vscode/extensions/ms-python.python-2022.14.0/pythonFiles/lib/python/debugpy/adapter/../../debugpy/launcher 61743 -- /Users/name/Desktop/Code/Python/boop.py
Traceback (most recent call last):
File "/Users/name/Desktop/Code/Python/boop.py", line 15, in <module>
drawnCard = newDeck.pop(0)
AttributeError: 'NoneType' object has no attribute 'pop'
name-MacBook-Air:Python name$