[Home] Python으로 돌아가기

함수(list; set) - 퀴즈 및 레포트

목차

1. 참조 자료
2. 퀴즈
3. 해설 및 코드
4. 레포트

1. 참조 자료

관련 동영상: https://youtu.be/yhoa5OIjEYY

2. 퀴즈

당신의 학교는 파이썬 코딩 대회를 주최할 예정이다. 참석률을 높이기 위해 댓글 이벤트를 진행한다. 댓글 작성자 중에서 무작위 추첨을 통해 1명은 치킨, 3명은 커피 쿠폰을 받는다. 이에 대한 프로그램을 작성하라.

출력 예시:

-- 당첨자 발표 --
치킨 당첨자: [1]
커피 당첨자: [2, 3, 4]
-- 축하합니다 --

3. 해설 및 코드

랜덤 추첨을 위해 random.shuffle()을 사용하여 리스트를 무작위로 섞고, random.sample()을 사용하여 중복 없이 추출한다.

import random

users = list(range(1, 21))  # 1부터 20까지 리스트 생성
random.shuffle(users)  # 리스트를 무작위로 섞음

chicken_winner = random.sample(users, k=1)  # 치킨 당첨자 1명
remain_users = set(users) - set(chicken_winner)  # 남은 유저
coffee_winners = random.sample(list(remain_users), k=3)  # 커피 당첨자 3명

print("-- 당첨자 발표 --")
print(f"치킨 당첨자 : {chicken_winner}")
print(f"커피 당첨자 : {coffee_winners}")
print("-- 축하합니다 --")

4. 레포트

당신의 학번은 202301234이다. 사이트 별로 비밀번호를 생성하는 프로그램을 작성하라.

출력 예시:

http://www.naver.com → nav1234!
http://www.daum.net → dau1234!
http://www.google.com → goo1234!
http://www.youtube.com → you1234!

비밀번호 생성 코드:

student_id = "202301234"
url = "http://www.naver.com"

index_dot1 = url.index(".")
index_dot2 = url.index(".", index_dot1 + 1)

# 규칙 1 적용
myStr = url[index_dot1+1:index_dot2]

# 규칙 2 적용
password = myStr[:3] + student_id[-4:] + "!"

print(f"{url}의 비밀번호는 {password}입니다.")