You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python函数deal_card仅返回1个随机值,如何修改使其返回2个?

问题分析

你的代码有两个核心问题导致只返回1个值:

  1. deal_card()函数里的for循环执行2次,但每次循环都会覆盖pick变量,最后仅返回最后一次循环选中的卡片,所以函数本质上只返回单个值。
  2. 外部调用时用user_cards.append(deal_card()),只会把函数返回的单个值添加到列表里,自然只有1个元素。
修正方案

方案1:让函数直接返回包含2个随机卡片的列表

调整函数逻辑,生成两个随机卡片并打包成列表返回,外部直接赋值即可:

import random

def deal_card():
    cards = [11, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10]
    # 用列表推导式生成2个随机卡片,random.choice可直接选元素,无需手动计算索引
    return [random.choice(cards) for _ in range(2)]

user_cards = deal_card()
print(user_cards)

方案2:保持函数返回单个卡片,调用两次append

如果想保留原函数返回单个卡片的逻辑,需要调用两次函数并分别添加到列表:

import random

def deal_card():
    cards = [11, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10]
    pick = random.randint(0, len(cards)-1)
    return cards[pick]

user_cards = []
# 调用两次函数,每次添加一个卡片
user_cards.append(deal_card())
user_cards.append(deal_card())
print(user_cards)

额外优化提示

原代码里每次循环都重新定义cards列表完全没必要,把它放到循环外面能提升效率;用random.choice(cards)替代手动计算索引的写法,代码会更简洁易读。

内容的提问来源于stack exchange,提问作者Wally Tan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 01:20:40