[Python]리스트를 이용하여 이벤트 당첨자 발표하기

2020. 12. 28. 23:16Python

이전에 배운 리스트를 사용하여 랜덤으로 이벤트 당첨자 발표하는 퀴즈를 만들어 보려 합니다.

 

 

 Quiz) 당신의 학교에서는 파이썬 코딩 대회를 주최합니다.

# 참석률을 높이기 위해 댓글 이벤트를 진행하기로 하였습니다.

# 댓글 작성자들 중에 추첨을 통해 1명은 치킨, 3명은 커피 쿠폰을 받게 됩니다.

# 추첨 프로그램을 작성하시오.

 

# 조건1 : 편의상 댓글은 20명이 작성하였고 아이디는 1~20 이라고 가정

# 조건2 : 댓글 내용과 상관 없이 무작위로 추첨하되 중복 불가

# 조건3 : random 모듈의 shuffle 과 sample 을 활용

 

먼저 문제는 위와 같습니다.

 

출력 예제는 아래와 같이 답이 나오도록 하였습니다.

# (출력 예제)

# --당첨자 발표--

# 치킨 당첨자 : 1

# 커피 당첨자 : [2 ,3 ,4]

# --축하합니다--

 

먼저 저는 random 함수를 불러와야 된다고 판단하여 

1)from random infort *

를 실시하였습니다.

2)그리고 당첨자를 users라는 변수를 만들고

users=[1,2,3,....20]을 만들으려고 합니다

여기서 지금 문제는 20명이 총원이지만 만약 총원이 100명이라면 이를 다 일일히 입력하기에는 너무 비효율적입니다

따라서 저는 users=range(1,21) 을 입력하였고 이는 1부터 21전까지의 숫자를 입력해 줍니다.

그러나, 이를 실행하면 users의 타입은 range 가 됩니다.

3)따라서 저는 리스트를 활용하기 위해 타입을 리스트로 바꾸주는 작업을 실행하였습니다.

users=list(users)

4)그러면 결국 변수 users은 1부터 20까지의 숫자이며 , 여기서 이 변수들을 랜덤으로 정렬하기위해

shuffle(users)를 실시하였습니다.

5)그리고 마지막으로, winners라는 변수를 만들고 이는 당첨된 사람들을 의미합니다.

sample이라는 함수를 사용하여 users라는 변수에서 winners를 추출해보려합니다.

winners=sample(users,4) 이는 users라는 변수에서 4명을 추출해주는 변수입니다.

6)마지막으로 출력예제에 맞추어 입력해 보려 합니다.

print("--당첨자 발표--")

print("치킨 당첨자 : {0}".format(winners[0]))

print("커피 당첨자 : {0}".format(winners[1:]))

print("--축하합니다--)

 

※-format()함수는 앞에 {0}으로 입력할 곳을 생성해 놓고 ()안에 사용할 리스트 변수를 설정 한 후 []에 사용할 리스트의 부분을 입력하는 것입니다.  

-초록색 부분은 실제 파이썬에서 입력했던 부분입니다.

 

그리고 아래와 같이 파이썬창에서 입력했던 코드들을 살펴보겠습니다. 부연설명이 필요한 부분에는 주석처리를 통해 각 줄마다 설명을 첨부하였습니다.

위와 같이 입력을 실시하였고, 앞서 설명했던 부분들이 모두 적용되어 입력된 것을 확인할수 있었습니다.

이를 코딩하면 아래와 같은 결과값이 나타납니다.

list를 사용하여 방대한 숫자에서 필요한 부분을 사용할수 있다는 것을 알았습니다.

format()함수가 매우 자주 사용되며 이를 꼭 기억해놓아야 할것을 알았습니다.

그리고 list는 매우 자주 사용되며 이의 개념을 잘 알아두어야 할것 같습니다.