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

如何实现Python程序从CSV文件中随机输出指定医学院的面试问题

解决方案:针对特定医学院生成随机面试问题

你的现有代码已经完成了数据读取和基础处理,但核心问题是它会遍历所有医学院输出问题,而不是聚焦用户选择的特定学院。我们可以调整代码,让它先获取用户的选择,再精准筛选对应学院的问题池,最后随机抽取一道题。

修改后的完整代码

import random
import pandas as pd

csv_file = "question_data.csv"
# 读取CSV并指定列名,同时处理空值
df = pd.read_csv(csv_file, names=["College", "Question"])
modified_df = df.dropna()

# 获取所有可用的医学院列表(去重后),方便用户选择
available_colleges = modified_df["College"].unique().tolist()

def generate_random_question(selected_college):
    # 筛选出用户选择的医学院对应的所有问题
    college_questions = modified_df[modified_df["College"] == selected_college]["Question"]
    
    # 处理找不到对应学院的情况
    if college_questions.empty:
        print(f"抱歉,没有找到关于「{selected_college}」的面试问题。")
        return
    
    # 随机抽取一道问题(用random.randint生成随机种子,保证每次结果不同)
    random_question = college_questions.sample(n=1, random_state=random.randint(1, 1000)).iloc[0]
    
    # 友好输出结果
    print(f"\n来自「{selected_college}」的随机面试问题:")
    print(random_question)

# 让用户选择医学院(用序号选择避免拼写错误)
print("可选的医学院:")
for idx, college in enumerate(available_colleges, 1):
    print(f"{idx}. {college}")

# 处理用户输入
try:
    choice = int(input("\n请输入对应的序号选择医学院:"))
    if 1 <= choice <= len(available_colleges):
        selected_college = available_colleges[choice-1]
        generate_random_question(selected_college)
    else:
        print("输入的序号无效,请重新运行程序并选择正确范围的序号。")
except ValueError:
    print("请输入有效的数字序号,不要输入字母或其他字符。")

关键改动说明

  1. 获取可用医学院列表:通过unique().tolist()提取所有不重复的医学院名称,展示给用户选择,避免手动输入时的拼写错误(比如长名称的医学院很容易输错)。
  2. 新增精准筛选逻辑:在generate_random_question函数中,用modified_df[modified_df["College"] == selected_college]精准定位用户指定学院的所有问题。
  3. 异常情况处理:加入college_questions.empty判断,如果用户输入的学院不存在,会给出友好提示,避免程序报错。
  4. 随机化优化:把固定的random_state=2换成random.randint(1,1000),这样每次运行都会得到不同的随机问题,而不是固定的那一道。
  5. 结果格式化:用iloc[0]把Series类型的结果转换成纯字符串,打印出来更整洁,不会显示多余的索引信息。

运行示例

当用户选择序号1(对应Baylor College of Medicine),程序可能输出:

来自「Baylor College of Medicine」的随机面试问题:
What do you think is the biggest problem in today's healthcare?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 15:37:37