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

如何从用户输入的列表中随机选取答案?代码输出异常求助

问题分析与解决

你的代码核心问题是把split生成的列表嵌套进了另一个列表:

  • input().split(',')已经直接返回包含所有选项的列表,比如输入"苹果,香蕉,橘子"会得到['苹果', '香蕉', '橘子']
  • 但你用choices.append(question)把这个列表当成单个元素塞进了choices,导致choices变成[['苹果', '香蕉', '橘子']]这种嵌套结构,random.choice()自然会返回整个子列表

另外还有两个可优化的细节:

  • t.sleep(5000)的单位是秒,5000秒等于1小时23分钟,显然不符合正常需求,应该改成t.sleep(5)(暂停5秒)
  • 输入时如果选项带空格(比如"苹果, 香蕉, 橘子"),split后元素会带空格,最好用列表推导式去掉前后空白

修正后的代码

import random
import time as t

def choose():
    # 直接用split得到选项列表,同时处理可能的空格
    choices = [item.strip() for item in input('请输入你的选项(用逗号分隔):\n').split(',')]
    # 直接从选项列表里随机选一个
    print(random.choice(choices))
    # 暂停5秒(不是5000秒)
    t.sleep(5)
    
choose()

关键修改点

  • 删掉了多余的choices = []和choices.append(question),直接把split处理后的结果赋值给choices
  • 用item.strip()清理每个选项的前后空格,避免出现带空格的无效选项
  • 把t.sleep(5000)改成t.sleep(5),符合正常的暂停需求

内容的提问来源于stack exchange,提问作者Arcade Luke

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 10:45:33