Я пытаюсь написать простую программу для игры в блэкджек, которая работает со случайным модулем, поэтому она выбирает между списком карт, и если выбранное число принадлежит последним трем переменным, которые равны 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
Функция, возвращающая None, даже если она завершается командой возврата Python ⇐ Python
Программы на Python
1735067663
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
Подробнее здесь: [url]https://stackoverflow.com/questions/79306303/function-returning-none-even-though-its-terminated-by-return-command-python[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия