编辑代码


import random as r
import time as t

def draw_winner(name_list, winner_list):
    index = r.randint(0, len(name_list) - 1)
    winner = name_list[index]
    winner_list.append(winner)
    del name_list[index]

def print_dots(count, interval):
    for _ in range(count):
        t.sleep(interval)
        print(".", end="", flush=True)
    print()

# 初始化全局名单
all_participants = [ ]
remaining_participants = all_participants.copy()
winners = []

while True:
    print("\n当前参与抽奖名单:", ", ".join(remaining_participants))
    print("参与人数:", len(remaining_participants))
    print("已中奖名单:", ", ".join(winners) if winners else "暂无")
    
    try:
        winner_count = int(input('请输入中奖人数(1-{}), 输入0退出: '.format(len(remaining_participants))))
        if winner_count == 0:
            print("抽奖结束!")
            break
        if winner_count <= 0 or winner_count > len(remaining_participants):
            print("请输入有效的中奖人数!")
            continue
            
        print("\n正在抽奖中...")
        print_dots(5, 0.3)
        
        print("中奖者是:")
        for _ in range(winner_count):
            draw_winner(remaining_participants, winners)
            print(".", end="", flush=True)
            t.sleep(0.5)
            
        print("\n\n恭喜以下同学中奖:", ", ".join(winners[-winner_count:]))
        print_dots(3, 0.5)
        
        if not remaining_participants:
            print("所有参与者都已抽完!")
            break
            
    except ValueError:
        print("请输入数字!")