Python 실습(조건문)

dumbbelldore·2024년 11월 5일
0

zero-base 33기

목록 보기
5/97

1. 교통 과속 위반 프로그램

  • 시속 50km 이하인 경우 '안전속도 준수'를, 시속 50km 초과인 경우 '안전속도 위반'을 출력하는 프로그램을 만드시오.
velocity = int(input("속도를 입력하세요: "))

if velocity <= 50:
	print("안전속도 준수")

else:
	print("안전속도 위반")
    
# 출력예시
# 속도를 입력하세요: 48
# 안전속도 준수

2. 점수 및 편차 출력 프로그램

  • 과목별 점수를 입력하면 총점, 평균, 편차를 출력하는 프로그램을 만드시오. (단, 과목별 편차데이터는 텍스트 막대그래프로 시각화하고, 과목별 평균 점수는 다음과 같다. 국어:85, 영어:82, 수학:89, 과학:75, 국사:94)
kor_avg = 85
eng_avg = 82
mat_avg = 89
sci_avg = 75
his_avg = 94

base_sum = kor_avg + eng_avg + mat_avg +\
           sci_avg + his_avg
base_avg = base_sum / 5

kor_score = int(input("국어 점수를 입력하세요: "))
eng_score = int(input("영어 점수를 입력하세요: "))
mat_score = int(input("수학 점수를 입력하세요: "))
sci_score = int(input("과학 점수를 입력하세요: "))
his_score = int(input("국사 점수를 입력하세요: "))

tot_sum = kor_score + eng_score + mat_score +\
          sci_score + his_score
tot_avg = tot_sum / 5

print('-'*60)
print(f"총점: {tot_sum}({tot_sum - base_sum}), 평균: {tot_avg}({tot_avg - base_avg})")
print(f"국어: {kor_score}({kor_score - kor_avg}), 영어: {eng_score}({eng_score - eng_avg}), 수학: {mat_score}({mat_score - mat_avg}), 과학: {sci_score}({sci_score - sci_avg}), 국사: {his_score}({his_score - his_avg})")
print('-'*60)
print("국어 편차:", ('+' if kor_score > kor_avg else '-') * abs(kor_score - kor_avg), f'({kor_score - kor_avg})')
print("영어 편차:", ('+' if eng_score > eng_avg else '-') * abs(eng_score - eng_avg), f'({eng_score - eng_avg})')
print("수학 편차:", ('+' if mat_score > mat_avg else '-') * abs(mat_score - mat_avg), f'({mat_score - mat_avg})')
print("과학 편차:", ('+' if sci_score > sci_avg else '-') * abs(sci_score - sci_avg), f'({sci_score - sci_avg})')
print("국사 편차:", ('+' if his_score > his_avg else '-') * abs(his_score - his_avg), f'({his_score - his_avg})')
print('-'*60)

# 출력예시
# 국어 점수를 입력하세요: 90
# 영어 점수를 입력하세요: 65
# 수학 점수를 입력하세요: 85
# 과학 점수를 입력하세요: 78
# 국사 점수를 입력하세요: 65
# ------------------------------------------------------------
# 총점: 383(-42), 평균: 76.6(-8.400000000000006)
# 국어: 90(5), 영어: 65(-17), 수학: 85(-4), 과학: 78(3), 국사: 65(-29)
# ------------------------------------------------------------
# 국어 편차: +++++ (5)
# 영어 편차: ----------------- (-17)
# 수학 편차: ---- (-4)
# 과학 편차: +++ (3)
# 국사 편차: ----------------------------- (-29)
# ------------------------------------------------------------

3. 난수를 이용한 가위바위보 게임

  • 사용자가 가위, 바위, 보에 해당하는 번호를 입력하면, 난수에 따라 게임의 승패를 알려주는 프로그램을 만드시오.
import random

candidates = ['가위', '바위', '보']

user_choice = int(input("가위, 바위, 보 선택: 1. 가위, 2. 바위, 3. 보"))

rand_choice = random.randint(1, 3)

print(f"> 사용자: {candidates[user_choice-1]}, 컴퓨터: {candidates[rand_choice-1]}")

if (user_choice == 1 and rand_choice == 3) or \
   (user_choice == 2 and rand_choice == 1) or \
   (user_choice == 3 and rand_choice == 2):
    print("> 결과: 승리")

elif (user_choice == rand_choice):
    print("> 결과: 무승부")
    
else:
    print("> 결과: 패배")

# 출력예시
# 가위, 바위, 보 선택: 1. 가위, 2. 바위, 3. 보1
# > 사용자: 가위, 컴퓨터: 가위
# > 결과: 무승부

4. 상수도 요금 계산기

  • 아래 요금표를 참고하여 업종 선택 후 사용량 입력 시 상수도 요금을 계산해주는 프로그램을 만드시오.

    업종별사용량단가(원)
    가정용-540
    대중탕용50이하820
    대중탕용50초과 300이하1,920
    대중탕용300초과2,400
    공업용500이하240
    공업용500초과470
business_type = int(input("업종 선택 (1. 가정용, 2. 대중탕용, 3. 공업용): "))

use_amt = int(input("사용량 입력: "))

if business_type == 1:
    bill_amt = use_amt * 540

elif business_type == 2:
    if use_amt <= 50:
        bill_amt = use_amt * 820
    elif (use_amt > 50) and (use_amt <= 300):
        bill_amt = use_amt * 1920
    else:
        bill_amt = use_amt * 2400

else:
    if use_amt <= 500:
        bill_amt = use_amt * 240
    else:
        bill_amt = use_amt * 470

print("=" * 40)
print("상수도 요금표")
print("-" * 40)
print("> 사용량: {:,d}".format(use_amt))
print("> 청구요금: {:,d}원".format(bill_amt))
print("=" * 40)

# 출력예시
# 업종 선택 (1. 가정용, 2. 대중탕용, 3. 공업용): 3
# 사용량 입력: 520
# ========================================
# 상수도 요금표
# ----------------------------------------
# > 사용량: 520
# > 청구요금: 244,400원
# ========================================

5. 미세먼지 비상저감조치에 따른 차량 운행제한 프로그램

  • 미세먼지 비상저감조치로 다음과 같이 차량 운행제한을 실시한다. 미세먼지 수치, 차량 종류(승용차, 영업용차), 차량번호를 입력하였을 때 운행제한 여부를 안내하는 프로그램을 만드시오.
    - 미세먼지 수치가 150 이하인 경우 챠량 5부제 실시
    - 미세먼지 수치가 150 초과 시 차량 2부제 실시 (단, 영업용 차량은 5부제 적용)
import datetime

dust_measure = int(input("미세먼지 수치 입력: "))
car_type = int(input("차량 종류 입력 (1. 승용차, 2. 영업용차): "))
car_no = int(input("차량 번호 끝 4자리 입력: "))
today_day = datetime.datetime.today().day

print(f"> 오늘은 {today_day}일입니다.")

# 차량 2부제
if (dust_measure > 150) and (car_type == 1):
    print("> 차량 2부제를 적용합니다.")
    if today_day % 2 == car_no % 2:
        print(f"> {car_no} 차량은 운행할 수 없습니다.")
    else:
        print(f"> {car_no} 차량은 운행할 수 있습니다.")
        
elif (dust_measure > 150) and (car_type == 2):
    print("> 차량 5부제를 적용합니다.")
    if today_day % 5 == car_no % 5:
        print(f"> {car_no} 차량은 운행할 수 없습니다.")
    else:
        print(f"> {car_no} 차량은 운행할 수 있습니다.")
        
else:
    print("> 차량 5부제를 적용합니다.")
    if today_day % 5 == car_no % 5:
        print(f"> {car_no} 차량은 운행할 수 없습니다.")
    else:
        print(f"> {car_no} 차량은 운행할 수 있습니다.")

# 출력예시
# 미세먼지 수치 입력: 287
# 차량 종류 입력 (1. 승용차, 2. 영업용차): 1
# 차량 번호 끝 4자리 입력: 4531
# > 오늘은 5일입니다.
# > 차량 2부제를 적용합니다.
# > 4531 차량은 운행할 수 없습니다.

6. 난수 기반 게임

  • 컴퓨터가 생성한 난수(1~10 사이 중 하나)를 사용자가 맞추는 게임을 만드시오. 단, 매번 사용자가 입력한 숫자와 난수의 크기를 비교하여 힌트를 제공하시오.
import random

try_cnt = 0
answer = random.randint(1, 10)

while True:
    try_cnt += 1
    guess = int(input("난수를 맞춰보세요: "))
    
    if answer == guess:
        print(f"정답입니다! (시도횟수: {try_cnt}회)")
        break
    
    else:
        if answer > guess:
            print("오답입니다. UP!")
            
        else:
            print("오답입니다. DOWN!")

# 출력예시
# 난수를 맞춰보세요: 10
# 오답입니다. DOWN!
# 난수를 맞춰보세요: 6
# 오답입니다. DOWN!
# 난수를 맞춰보세요: 2
# 오답입니다. UP!
# 난수를 맞춰보세요: 3
# 오답입니다. UP!
# 난수를 맞춰보세요: 4
# 정답입니다! (시도횟수: 5회)

*이 글은 제로베이스 데이터 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.

profile
데이터 분석, 데이터 사이언스 학습 저장소

0개의 댓글