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

Python抽奖程序输入名单打印带括号及中奖校验逻辑问题求解

抽奖校验工具代码修正

核心问题说明

  • 分割字符串的符号错误:原代码用中文逗号,作为split分割符,而提示用户输入的格式是英文逗号分隔,会导致分割失败。同时split返回的是列表,直接打印整个列表就会带方括号,需要遍历列表取单个姓名输出。
  • 校验逻辑完全倒置:原代码遍历中奖名单,判断整个宾客列表是否属于中奖名单,逻辑不成立,应该遍历每个输入的宾客,单独判断是否在中奖名单中。

修正后代码

import random
# 随机生成中奖名单
raffle_generator = random.randint(1,4)
if raffle_generator == 1:
    raffle_winners = ['Bob','Alice']
elif raffle_generator == 2:
    raffle_winners = ['Matt','Joe']
elif raffle_generator == 3:
    raffle_winners = ['Tim','Doug']
else:
    raffle_winners = ['Rick','Jim']

print('请按以下格式输入宾客名单 -> xxx,xxx,xxx.....')
# 用英文逗号分割,同时去除每个姓名前后的多余空格
guests = input('>').split(',')
guests = [name.strip() for name in guests]

# 遍历每个宾客判断中奖情况
for guest in guests:
    if guest in raffle_winners:
        print(f'{guest} 中奖了!')
    else:
        print(f'{guest} 未中奖')

# 测试用输入:Bob,Alice,Matt,Joe,Tim,Doug,Rick,Jim

优化说明

  • 将原代码的多层独立if判断改为elif+else结构,减少不必要的逻辑判断
  • 新增姓名去空格处理,兼容用户输入时不小心添加的前后空格
  • 采用f-string格式化输出,语法更简洁易读

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 08:27:04