Day7. 파이썬 문제풀이 (3)

Junghwan Park·2023년 4월 14일
0

스터디노트

목록 보기
8/54

조건문(01)

  • 교통 과속 위반 프로그램을 만들어보자.
    → 시속 50km 이하 -> 안전속도 준수!
    → 시속 50km 초과 -> 안전속도 위반 과태료 50,000원 부과 대상!!
speed = int(input('속도 입력 : '))

if speed <= 50:
     print('안전속도 준수!!')
if speed > 50:
     print('안전속도 위반!! 과태료 50,000원 부과 대상!!')

  • 문자 메시지 길이에 따라 문자 요금이 결정되는 프로그램을 만들어보자.
    → 문자 길이 50이하 -> SMS발송(50원 부과)
    → 문자 길이 50초과 -> MMS발송(100원 부과)
msgIn = input('메시지 입력: ')
lenMsg = len(msgIn)
msgPrice = 50

if lenMsg <= 50:
    print('SMS 발송!!')
    msgPrice = 50

if lenMsg > 50:
    print('MMS 발송!!')
    msgPrice = 100

print('메시지 길이 : {}'.format(lenMsg))
print('메시지 발송 요금 {}원'.format(msgPrice))

조건문(02)

  • 국어, 영어, 수학, 과학, 국사 점수를 입력하면 총점을 비롯한 각종 데이터가 출력되는 프로그램을 만들어보자.
    → 과목별 점수를 입력하면 총점, 평균, 편차를 출력한다.
    → 평균은 다음과 같다.
    국어:85, 영어: 82, 수학:89, 과학:75, 국사:94
    → 각종 편차 데이터는 막대 그래프로 시각화 한다
korAvg = 85; engAvg = 82; matAvg = 89
sciAvg = 75; hisAvg = 94
totalAvg = korAvg + engAvg + matAvg + sciAvg + hisAvg
avgAvg = int(totalAvg / 5)

korScore = int(input('국어 점수: '))
engScore = int(input('영어 점수: '))
matScore = int(input('수학 점수: '))
sciScore = int(input('과학 점수: '))
hisScore = int(input('국사 점수: '))

totalScore = korScore + engScore + matScore + sciScore + hisScore
avgScore = int(totalScore / 5)

korGap = korScore - korAvg
engGap = engScore - engAvg
matGap = matScore - matAvg
sciGap = sciScore - sciAvg
hisGap = hisScore - hisAvg

totalGap = totalScore - totalAvg
avgGap = avgScore - avgAvg

print('-' * 70)
print('총점: {}({}), 평균: {}({})'.format(totalScore, totalGap, avgScore, avgGap))
print('국어: {}({}), 영어: {}({}), 수학: {}({}), 과학: {}({}), 국사: {}({})'.format(
    korScore, korGap, engScore, engGap, matScore, matGap, sciScore, sciGap, hisScore, hisGap))
print('-' * 70)

str = '+' if korGap > 0 else '-'
print('국어 편차:{}({})'.format(str * abs(korGap), korGap))     # -가 나올 경우를 위해 abs(절대값을구함)을 사용한다

str = '+' if engGap > 0 else '-'
print('영어 편차:{}({})'.format(str * abs(engGap), engGap))

str = '+' if matGap > 0 else '-'
print('수학 편차:{}({})'.format(str * abs(matGap), matGap))

str = '+' if sciGap > 0 else '-'
print('과학 편차:{}({})'.format(str * abs(sciGap), sciGap))

str = '+' if hisGap > 0 else '-'
print('국사 편차:{}({})'.format(str * abs(hisGap), hisGap))

str = '+' if totalGap > 0 else '-'
print('총점 편차:{}({})'.format(str * abs(totalGap), totalGap))

str = '+' if avgGap > 0 else '-'
print('평균 편차:{}({})'.format(str * abs(avgGap), avgGap))

print('-' * 70)

조건문(03)

  • 난수를 이용해서 홀/짝 게임을 만들어보자.
import random   # 무작위 난수 모듈

comNum = random.randint(1, 2)   # 1과2 사이의 하나의 수 선택
userSelect = int(input('홀/짝 선택: 1.홀수 \t 2.짝수'))

if comNum == 1 and userSelect == 1:
     print('빙고!! 홀수!!')
elif comNum == 2 and userSelect == 2:
     print('빙고!! 짝수!!')
elif comNum == 1 and userSelect == 2:
     print('실패!! 홀수!!')
elif comNum == 2 and userSelect == 1:
     print('실패!! 짝수!!')

  • 난수를 이용해서 가위, 바위, 보 게임을 만들어보자.
import random
comNumber = random.randint(1, 3)
userNumeber = int(input('가위, 바위, 보 선택: 1.가위 2.바위 3.보'))

if (comNumber == 1 and userNumeber == 2) or \
        (comNumber == 2 and userNumeber == 3) or \
        (comNumber == 3 and userNumeber == 1):
    print('컴퓨터: 패, 유저: 승')
elif comNumber == userNumeber:
    print('무승부')
else:
    print('컴퓨터: 승, 유저: 패')

print('컴퓨터: {}, 유저: {}'.format(comNumber, userNumeber))

조건문(04)

  • 아래 요금표를 참고해서 상수도 요금 계산기를 만들어보자.
    → 가정용 - 540원
    → 대중탕용 50이하 820원 // 50초과 300이하 1920원 // 300초과 2400원
    → 공업용 500이하 240원 // 500초과 480원
part = int(input('업종 선택(1.가정용  2.대중탕용  3.공업용) : '))
useWater = int(input('사용량 입력: '))
unitPrice = 0

if part == 1:
    unitPrice = 540

elif part == 2:
    if useWater <= 50:
        unitPrice = 820
    elif useWater > 50 and useWater <= 300:
        unitPrice = 1920
    elif useWater > 300:
        unitPrice = 2400

elif part == 3:
    if useWater <= 500:
        unitPrice = 240
    else:
        unitPrice = 470

print('=' * 30)
print('상수도 요금표')
print('-' * 30)
print('사용량 : 요금')
userPrice = useWater * unitPrice
print('{} : {}'.format(useWater, format(userPrice, ',')))
print('=' * 30)

조건문(05)

  • 미세먼지 비상저감조치로 차량 운행제한 프로그램을 다음 내용에 맞게 만들어 보자.
    → 미세먼지 측정 수치가 150이하면 차량 5부제 실시
    → 미세먼지 측정 수치가 150을 초과하면 차량 2부제 실시
    → 차량 2부제를 실시하더라도 영업용차량은 5부제 실시
    → 미세먼지 수치, 차량 종류, 차량 번호를 입력하면 운행 가능 여부 출력
import datetime # 날짜, 시간 정보를 위해

today = datetime.datetime.today()
day = today.day # today에서 날짜만 뽑아옴

limitDust = 150     # 이하면 5부제 초과면 2부제 실시
dustNum = int(input('미세먼지 수치 입력 : '))
carType = int(input('차량 종류 선택 : 1.승용차 \t 2.영업용차'))
carNumber = int(input('차량 번호 입력 : '))
print(day)
print(day % 5)
 print('-' * 30)
 print(today)
 print('-' * 30)
if dustNum > limitDust and carNumber == 1:
     if (day % 2) == (carNumber % 2):
         print('차량 2부제 적용')
         print('차량 2부제로 금일 운행제한 대상 차량입니다.')
     else:
         print('금일 운행 가능합니다.')
if dustNum > limitDust and carNumber == 2:
     if (day % 5) == (carNumber % 5):
         print('차량 5부제 적용')
         print('차량 5부제로 금일 운행제한 대상 차량입니다.')
     else:
         print('금일 운행 가능합니다.')
if dustNum <= limitDust:
     if (day % 5) == (carNumber % 5):
         print('차량 5부제 적용')
         print('차량 5부제로 금일 운행제한 대상 차량입니다.')
     else:
         print('금일 운행 가능합니다.')
print('-' * 30)

오류가 나지 않지만 if문이 읽혀지지 않고있다 수정을 해야할 것 같다.


조건문(06)

  • PC에서 난수를 발생하면 사용자가 맞추는 게임을 만들어보자.
    → PC가 난수(1~1000)를 발생하면 사용자가 숫자(정수)를 입력한다.
    → 사용자가 난수를 맞추면 게임이 종료된다.
    → 만약, 못 맞추게 되면 난수와 사용자 숫자의 크고 작음을 출력한 후 사용자한테 다시 기회를 준다.
    → 최종적으로 사용자가 시도한 횟수를 출력한다.
import random

pcNum = random.randint(1, 1000)
 tryCount = 0

gameFlag = True

while gameFlag:
     tryCount += 1       # 최종 시도 횟수를 기록
     userNum = int(input('1에서 1000까지의 정수 입력: '))

     if pcNum == userNum:
         print('빙고!')
         gameFlag = False
     else:
         if pcNum > userNum:
             print('난수가 크다!')
         else:
             print('난수가 작다!')

print('난수 : {}, 시도 횟수 : {}'.format(pcNum, tryCount))

  • 실내온도를 입력하면 스마트에어컨 상태가 자동으로 설정되는 프로그램을 만들어보자.
    → 18도 이하 : off
    → 18도 초과 22도 이하 : 매우약
    → 22도 초과 24도 이하 : 약
    → 24도 초과 26도 이하 : 중
    → 26도 초과 28도 이하 : 강
    → 28도 초과 : 매우 강
innerTemp = int(input('실내온도 입력 : '))

if innerTemp <= 18:
     print('에어컨 : OFF!!')
elif innerTemp > 18 and innerTemp <= 22:
     print('에어컨 : 매우 약!!')
elif innerTemp > 22 and innerTemp <= 24:
     print('에어컨 : 약!!')
elif innerTemp > 24 and innerTemp <= 26:
     print('에어컨 : 중!!')
elif innerTemp > 26 and innerTemp <= 28:
     print('에어컨 : 강!!')
elif innerTemp > 28:
     print('에어컨 : 매우 강!!')

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

profile
안녕하세요 반갑습니다^^

0개의 댓글