年會抽獎案例
把向向過程程式設計函式實現時:可讀性+重用性,print時,能不使用“”號時,儘量不使用
- 各部門統計員工的姓名 => 部門名稱.txt
- 讀取使用者資訊
- 根據特定的獎項配置來進行抽獎
data_list = [
("三等獎",5,"空氣清淨機"),
("二等獎",3,"ipad"),
("一等獎",2,"iphone 13"),
("特等獎",1,"寶馬 X5"),
]
- 一個一個獎項去抽取,每次抽取後領導講話後,在繼續抽取
"""
- 各部門統計員工的姓名 => 部門名稱.txt
- 讀取使用者資訊
- 根據特定的獎項配置來進行抽獎
data_list = [
("三等獎",5,"空氣清淨機"),
("二等獎",3,"ipad"),
("一等獎",2,"iphone 13"),
("特等獎",1,"寶馬 X5")
]
- 一個一個獎項去抽取,每次抽取後領導講話後,在繼續抽取
"""
import os
import random
from datetime import datetime
# def get_user_info(files,choices):
message = f"{30 * '*'} 聯通年會抽獎系統{30 * '*'}"
print(message)
# 1、讀取所有使用者資訊
user_list = []
for file_name in os.listdir("files"):
dep_name = file_name.split(".")[0] # 獲取部門名字
file_path = os.path.join("files", file_name)
f = open(file_path, mode='r', encoding='utf-8')
for line in f:
line = line.split()
if line:
user_list.append(f'{dep_name}-{line}')
f.close()
#方式1
info = f"""
員工數量:{len(user_list)}
時間:{datetime.now().strtime("%Y-%m-%d")}
"""
#方式2
print(f"員工數量:{len(user_list)}\n時間:{datetime.now().strtime("%Y-%m-%d")}\n")
# 2. 輸入特定Y/y字元繼續
while True:
text = input("輸入y/Y繼續").strip()
if text.upper() == 'Y':
break
# 3 獎項資訊
print(f"{30 * '-'} 獎品資訊{30 * '-'}")
data_list = [
("三等獎", 5, "空氣清淨機"),
("二等獎", 3, "ipad"),
("一等獎", 2, "iphone 13"),
("特等獎", 1, "寶馬 X5"),
]
for text, count, title in data_list:
print(f"{text}. 有{count}個,獎品是:{title}")
# 4、輸入特定Y/y字元繼續
while True:
text = input("輸入y/Y繼續").strip()
if text.upper() == 'Y':
break
# 5、開始抽獎
print(f"{30 * '-'} 開始抽獎{30 * '-'}")
for text, count, title in data_list:
luck_list = random.sample(user_list, count)
# 避免抽獎姓名重複,將已抽獎的人員,進行移除
for name in luck_list:
user_list.remove(name)
print(f"{text},中獎人員{luck_list},獎品:{title}")
# 存在問題:1、獎項全部出來了,2、有重複抽獎
# 解決問題:1,透過輸入回車繼續
input('回車繼續')
輸入特定的字元才能繼續往下面執行
# 2.輸入回車繼續
input ('回車繼續')
print(‘123’)
# 輸入特定的字元繼續
while True:
text = input("輸入q繼續")
if text == 'q':
break