간단 python Quiz

호호빵·2022년 4월 16일

1. random

당신의 학교에서는 파이썬 코딩 대회를 주최합니다.
참석률을 높이기 위해 댓글 이벤트를 진행하기로 하였습니다.
댓글 작성자들 중에 추첨을 통해 1명은 치킨, 3명은 커피 쿠폰을 받게 됩니다.
추첨 프로그램을 작성하시오.

조건1 : 편의상 댓글은 20명이 작성하였고 아이디는 1~20이라고 가정
조건2 : 댓글 내용과 상관 없이 무작위로 추첨하되 중복은 불가
조건3 : random 모듈의 shuffle 과 sample 을 활용

(출력 예제)
-- 당첨자 발표 --
치킨 당첨자 : 1
커피 당첨자 : [2, 3, 4]
-- 축하합니다 --

from random import *

users = range(1, 21)
users = list(users)

print(users)
shuffle(users)
print(users)

winners = sample(users, 4)
print("-- 당첨자 발표 --")
print("치킨 당첨자: {0}".format(winners[0]))
print("커피 당첨자: {0}".format(winners[1:]))
print("-- 축하합니다 --")
                               ->   -- 당첨자 발표 --
                                    치킨 당첨자 : 11
                                    커피 당첨자 : [20, 2, 4]
                                    -- 축하합니다 --

2. for

50명의 승객과 매칭 기회가 있을 때, 총 탑승 승객 수를 구하는 프로그램을 작성하시오.

조건1 : 승객별 운행 소요 시간은 5분 ~ 50분 사이의 난수로 정해집니다.
조건2 : 당신은 소요 시간 5분 ~ 15분 사이의 승객만 매칭해야 합니다.

(출력문 예제)
[O] 1번째 손님 (소요시간 : 15분)
[ ] 2번째 손님 (소요시간 : 50분)
...
[ ] 50번째 손님 (소요시간 : 16분)

총 탑승 승객 : 2 분

from random import *

cnt = 0   # 총 탑승 승객 수
for guest in range(1, 51):
    time = randrange(5, 51)
    if time >= 5 and time <= 15:
        print("[o] {0}번째 손님 (소요시간 : {1}분)".format(guest, time))
        cnt += 1
    else:
        print("[ ] {0}번째 손님 (소요시간 : {1}분)".format(guest, time))
    
print("총 탑승 승객 : {0}분".format(cnt))

3. 함수 적용

표준 체중을 구하는 프로그램을 작성하시오

(성별에 따른 공식)
남자 : 키(m) 키(m) 22
여자 : 키(m) 키(m) 21

조건1 : 표준 체중은 별도의 함수 내에서 계산
함수명 : std_weight
전달값 : 키(height), 성별(gender)
조건2 : 표준 체중은 소수점 둘째자리까지 표시

(출력 예제)
키 175cm 남자의 표준 체중은 67.38kg 입니다.

def std_weight(height, gender):
    if gender == "남자" :
        return height * height * 22
    else:
        return height * height * 21
    
height = 175
gender = "남자"
weight = round(std_weight(height / 100, gender), 2)
print("키 {0}cm {1}의 표준 체중은 {2}kg 입니다."\
	.format(height, gender, weight))
     -> 키 175cm 남자의 표준 체중은 67.38kg 입니다.

4. 파일 만들기

1주차부터 50주차까지의 보고서 파일을 만드는 프로그램을 작성하시오.

  • X 주차 주간보고 -
    부서 :
    이름 :
    업무 요약 :

조건 : 파일명은 '1주차.txt', '2주차.txt', ... 와 같이 만듭니다.


for i in range(1, 51):
    with open(str(i) + "주차.txt", "w", encoding="utf8") as week_file:
        week_file.write("- {0} 주차 주간보고 -".format(i))
        week_file.write("\n부서 : ")
        week_file.write("\n이름 : ")
        week_file.write("\n업무 요약 : ")
   -> 1주차.txt, ... , 50주차.txt 생김 
profile
하루에 한 개념씩

0개의 댓글