목차
1. 참조 자료
관련 동영상: https://youtu.be/yhoa5OIjEYY
2. 퀴즈
당신의 학교는 파이썬 코딩 대회를 주최할 예정이다. 참석률을 높이기 위해 댓글 이벤트를 진행한다. 댓글 작성자 중에서 무작위 추첨을 통해 1명은 치킨, 3명은 커피 쿠폰을 받는다. 이에 대한 프로그램을 작성하라.
- 조건 1: 댓글은 20명이 작성하며, 아이디는 1~20이라고 가정한다.
- 조건 2: 무작위로 추첨하며, 중복은 허용되지 않는다.
- 조건 3: random 모듈의
shuffle과sample을 활용한다.
출력 예시:
-- 당첨자 발표 --
치킨 당첨자: [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이다.
사이트 별로 비밀번호를 생성하는 프로그램을 작성하라.
- 규칙 1: 두 점(.) 사이의 가운데 부분을 슬라이싱하여 사용 (예:
https://www.naver.com→naver). - 규칙 2: 추출한 단어의 앞 세 자리 + 학번 끝 네 자리 + '!'로 구성.
출력 예시:
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}입니다.")