랜덤으로 부서를 배정하는 코드를 짜고 싶습니다.
안녕하세요.
기초강의와 점프투파이썬으로 공부를 하면서 흥미를 잃지 않기 위해 스스로 필요하다 싶은 코드를 생각해서 한 번 짜보려는데 생각보다 구현이 잘 안 되네요.
제가 생각한 문제는
30명의 신규 입사자가 있고, 30명의 신규 입사자들을 Assurance 부서, Tax 부서, Deal 부서에 각각 20명, 6명, 4명씩 "랜덤으로" 배정하는 문제입니다.
일단은
from random import *
Staffs=range(1,31)
Staffs=set(Staffs)
Assigned_Assurance=(set(sample(Staffs,20)))
Assigned_Tax=set(sample((Staffs-Assigned_Assurance),6))
Assigned_Deal=set(sample((Staffs-Assigned_Tax-Assigned_Assurance),4))
print(Assigned_Assurance)
print(Assigned_Tax)
print(Assigned_Deal)
이렇게 해서 배정 자체는 나름대로 완벽하게(?) 했는데 여기서 input 명령어를 이용해서 자신의 배정번호를 입력했을 때 자신의 부서가 어디인지 알 수 있도록 구현하기 위해서
number_staff = (int(input("배정번호를 입력하세요: ")))
if number_staff in Assigned_Assurance:
print("배정번호 {0}번 입사자는 감사부서입니다. 축하합니다.".format(number_staff))
elif number_staff in Assigned_Tax:
print("배정번호 {0}번 입사자는 Tax부서입니다. 축하합니다.".format(number_staff))
elif number_staff in Assigned_Deal:
print("배정번호 {0}번 입사자는 Deal부서입니다. 축하합니다.".format(number_staff))
else:
print("오류입니다.")
를 추가했습니다.
그런데 이 경우, 당연하게도 같은 배정번호를 계속 입력해도 Run할 때마다 배정되는 부서가 바뀌게 되는데 한번 랜덤으로 뽑은 값을 고정하고 거기서 input 값만 계속 넣을 수 있도록 구현하는 방법이 없을까요?
어쩌면 초보적인 문제일 거 같기도 한데 제가 공부가 부족한 상태에서 물어보는 거 아닌가 하는 생각도 들고 그러네요..
이게 구현이 된 이후에는 다른 사람의 배정번호를 알아도 조회를 할 수 없도록 배정번호에 해당하는 다른 비밀번호 등을 입력해야 거기에 해당되는 배정번호가 조회되어서 결과를 알 수 있도록 하는 걸 시도해봐야겠습니다.
감사합니다.
감사하는코딩 님 1018
M 2020년 7월 26일 6:33 오후
1개의 답변이 있습니다. 1 / 1 Page
다음처럼 물어보는 부분을 while 문으로 하면 되지 않을까요?
from random import *
Staffs=range(1,31)
Staffs=set(Staffs)
Assigned_Assurance=(set(sample(Staffs,20)))
Assigned_Tax=set(sample((Staffs-Assigned_Assurance),6))
Assigned_Deal=set(sample((Staffs-Assigned_Tax-Assigned_Assurance),4))
print(Assigned_Assurance)
print(Assigned_Tax)
print(Assigned_Deal)
while True:
number_staff = (int(input("배정번호를 입력하세요: ")))
if number_staff in Assigned_Assurance:
print("배정번호 {0}번 입사자는 감사부서입니다. 축하합니다.".format(number_staff))
elif number_staff in Assigned_Tax:
print("배정번호 {0}번 입사자는 Tax부서입니다. 축하합니다.".format(number_staff))
elif number_staff in Assigned_Deal:
print("배정번호 {0}번 입사자는 Deal부서입니다. 축하합니다.".format(number_staff))
else:
print("오류입니다.")
박응용 님
M 2020년 7월 26일 6:36 오후