[英]Returning multiple values in a for loop?
長話短說:
import random
cards = [11, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10]
user_hand = []
computer_hand = []
def draw(x):
for c in range(0, x):
card = random.choice(cards)
return card
user_hand.append(draw(1))
print(user_hand)
嘗試將 function 放在一起,這將循環遍歷卡片列表並選擇一個隨機項目,無論 X 指定多少次,但無論插入的數字如何
user_hand.append(draw(x))
它總是只返回一張卡,非常難過。 有任何想法嗎? 認為這是 function 中的返回,因為返回在調用時結束了一個代碼塊,但我不確定。
這是因為card
在每次迭代中都會被覆蓋,而您只返回最后一個值。
您可以創建一個列表並返回該列表:
def draw(x):
random_cards = []
for c in range(0, x):
card = random.choice(cards)
random_cards.append(card)
return random_cards
user_hand.extend(draw(1)) # further you'll need extend here else it will create a list of lists
可能是這樣
def draw(x):
result=[]
for c in range(0, x):
card = random.choice(cards)
result.append(card)
return result
如果您想選擇無需更換的卡片, random.sample
function 可以滿足您的需求。
def draw(x):
return random.sample(cards, x)
user_hand.extend(draw(3))
draw()
的值,因為range
function 迭代start
和end
,因此傳遞一個只會返回一個值!list
添加到 append 在range()
期間選擇的random choices
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.