#python #list #function #python-3.x
#python #Список #функция #python-3.x
Вопрос:
У меня есть проблема с домашним заданием с одной из моих функций, называемой function 4 . Это его код:
def getSuit(n):
suits = []
if 1 <= n <= 13:
suits.append("Spades")
return suits
if 14 <= n <= 26:
suits.append("Hearts")
return suits
if 27 <= n <= 39:
suits.append("Clubs")
return suits
if 40 <= n <= 52:
suits.append("Diamonds")
return suits
Теперь функция работает так, как есть, если я вызываю ее в оболочке следующим образом:
>>>getSuit(51)
>>>["Diamonds"]
Тем не менее, я создаю новую функцию, которая устанавливает значение карты, а также вызывает функцию 4 для получения масти карты, но когда я вызываю функцию, она отображает только [«Пики»], независимо от того, какое число выбрано.
Вот код для функции 5:
def getCard(n):
n = (n-1) % 13 1
deckValue = []
grabSuit = getSuit(n) # Called Function 4 here. <---
if n == 1:
deckValue.append("Ace")
return deckValue grabSuit
if 2 <= n <= 10:
deckValue.append(str(n))
return deckValue grabSuit
if n == 11:
deckValue.append("Jack")
return deckValue grabSuit
if n == 12:
deckValue.append("Queen")
return deckValue grabSuit
if n == 13:
deckValue.append("King")
return deckValue grabSuit
Итак, теперь, когда я вызываю ее в оболочке python, это мой результат:
>>>getCard(52)
>>> ["King", "Spades"]
Тогда как это должно быть:
>>>getCard(52)
>>>["King", "Diamonds"]
Я просто неправильно вызываю переменную функции или мне нужно переписать функцию 4? Кажется, я не могу понять, почему он не отображает другие костюмы, несмотря на то, что он отлично работает в одиночку.
Ответ №1:
В getCart
вы меняете n
, прежде чем использовать его с getSuit()
n = (n-1) % 13 1
grabSuit = getSuit(n)
порядок изменения
grabSuit = getSuit(n)
n = (n-1) % 13 1
Комментарии:
1. Вау, ха-ха, я не заметил, что я это сделал. Бахх, я чувствую себя идиотом. Спасибо, что заметили это.
2. старый метод: используется
print(...)
для просмотра значений в переменных и какая часть кода выполняется. В основном это помогает решить проблему.
Ответ №2:
def getCard(n):
grabSuit = getSuit(n) # Called Function 4 here. <--- Move to this line
n = (n-1) % 13 1
deckValue = []