Funktion gibt None zurück, obwohl sie durch den Rückgabebefehl Python beendet wurdePython

Python-Programme
Guest
 Funktion gibt None zurück, obwohl sie durch den Rückgabebefehl Python beendet wurde

Post by Guest »

Ich versuche, ein einfaches BlackJack-Programm zu schreiben, das mit einem Zufallsmodul arbeitet, also zwischen der Liste der Karten auswählt, und wenn die ausgewählte Zahl zu den letzten 3 Variablen gehört, die gleich 10 sind, dann geht sie in eine if-Anweisung, in der entschieden wird, ob die Karte König, Dame oder Bube sein soll. Am Ende von if-Anweisungen habe ich return-Anweisungen, die sicherstellen sollen, dass der Wert der Funktion beim Aufruf die Tupel sein sollten, aber wenn ich versuche, innerhalb einer while-Anweisung aufzurufen, erhalte ich „Zeile 43, in
card_name_x, card_name_y = card_conversion(x,y)
^^^^^^^^^^^^^^^^^^^^^^
TypeError: Kann nicht entpackt werden nicht iterierbares NoneType-Objekt“, weil ich denke, dass die Funktion None zurückgibt, sodass sie den Tupeln keinen Wert zuweisen kann.

Code: Select all

import random

running = True

cards = [11, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10]
blackjack = ["jack", "king", "queen"]

x = cards[random.randint(0,12)]
y = cards[random.randint(0,12)]

player_deck = []
dealer_deck = []

def card_conversion(x,y):
if x == 10 and y == 10:
card_name_x = blackjack[random.randint(0, 2)]
print(card_name_x)
card_name_y = blackjack[random.randint(0, 2)]
print(card_name_y)
return card_name_x, card_name_y
elif x != 10 and y == 10:
card_name_y = blackjack[random.randint(0, 2)]
card_name_x = x
print(card_name_y)
return card_name_x, card_name_y
elif x == 10 and y != 10:
card_name_x = blackjack[random.randint(0, 2)]
card_name_y = y
print(card_name_x)
return card_name_x, card_name_y

def card_point_total():
sum = x + y
return sum

player_turn = True
dealer_turn = True

while running:

if dealer_turn == True:
card_conversion(x,y)
card_name_x, card_name_y = card_conversion(x,y)
card_point_total()
dealer_deck.append(card_name_x)
dealer_deck.append(card_name_y)
print(card_point_total())
print(dealer_deck)
dealer_turn = False
#player_turn = True

if player_turn == True:
card_conversion(x,y)
card_name_x, card_name_y = card_conversion(x,y)
player_deck.append(card_name_x)
player_deck.append(card_name_y)
print(card_point_total())
print(player_deck)
player_turn = False
#dealer_turn= True

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post