Функция, возвращающая None, даже если она завершается командой возврата PythonPython

Программы на Python
Ответить
Anonymous
 Функция, возвращающая None, даже если она завершается командой возврата Python

Сообщение Anonymous »

Я пытаюсь написать простую программу для игры в блэкджек, которая работает со случайным модулем, поэтому она выбирает между списком карт, и если выбранное число принадлежит последним трем переменным, которые равны 10, тогда она переходит в Оператор if, где он решает, должна ли карта быть королем, дамой или валетом. В конце операторов if у меня есть операторы возврата, которые должны гарантировать, что значение функции при вызове должно быть кортежами, но когда я пытаюсь вызвать внутри оператора while, я получаю "строку 43, в
card_name_x, card_name_y = card_conversion(x,y)
^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: невозможно распаковать неитерируемый объект NoneType", потому что я думаю, что функция возвращает None, поэтому она не может присвоить значение кортежам.
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



Подробнее здесь: https://stackoverflow.com/questions/793 ... and-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»