[1W] ZB_DATA_기초문풀

윤환희·2023년 7월 11일

ZERO-BASE_Python_기초

목록 보기
7/8

✔데이터와 변수 사용법(04)

  • 체중(g)과 신장(cm)을 입력하면 BMI지수가 출력되는 프로그램 제작

    TIP

    isdigit(): 숫자인지 확인(숫자면True, 아니면 False)

    weight = input('체중 입력(g):')
    height = input('신장 입력(cm):')
    
    if weight.isdigit():
        weight = int(weight) / 10
    
    if height.isdigit():
        height = int(height) / 100
    
    print('체중 : {}kg'.format(weight))
    print('신장 : {}m'.format(height))
    
    bmi = weight / (height * height)
    print('BMI : %.2f' % bmi)
  • 다음 코드에서 num1과 num2의 값을 서로 바꾸고 각각 출력해보자.

    num1 = 10
    num2 = 20
    print('num1 : {}, num2 : {}'.format(num1, num2))
    
    tempNum = num1
    num1 = num2
    num2 = tempNum
    print('num1 : {}, num2 : {}'.format(num1, num2))
  • 중간,기말고사 점수를 입력하면 총점과 평균이 출력되는 프로그램 제작

    var1 = input('중간 고사 점수 : ')
    var2 = input('중간 고사 점수 : ')
    
    if var1.isdigit() and var2.isdigit():
        var1 = int(var1)
        var2 = int(var2)
        sum_var = var1 + var2
        average_var = sum_var / 2
        print('총점 : {}, 평균: {}'.format(sum_var, average_var))
    
    else:
        print('잘 못 입력했습니다.')

✔데이터와 변수 사용법(05)

  • 키오스크에서 사용하는 언어 선택 프로그램 제작

    langauge = int(input('언어 선택(Choose Your language : 1. 한국어 \t 2.English'))
    
    if langauge == 1:
        menu = '1.샌드위치 \t2.햄버거 \t3.쥬스 \t4.커피 \t5.아이스크림'
    
    elif langauge == 2:
        menu = '1.Sandwich \t2.Hamburger \t3.Juice \t4.Coffe \t5.Ice cream'
    
    print(menu)
  • 나의 나이가 100살 되는 해의 연도를 구하는 프로그램을 만들어보자.

    import datetime
    nowYear = datetime.datetime.today()
    age = input('나이 입력:' )
    
    if age.isdigit():
        age100 = 100 - int(age)
        year100 = nowYear.year + age100
        print('{}년({}년후)에 100살!!'.format(year100, age100))
    else:
        print('잘 못 입력했습니다.')

✔연산자(01)

  • 상품 가격과 지불 금액을 입력하면 거스름 돈을 계산하는 프로그램 제작
    단,거스름 돈은 지폐와 동전의 개수를 최소로 하고, 1원단위 절사한다.

    # 지폐
    money50000 = 50000
    money10000 = 10000
    money5000 = 5000
    money1000 = 1000
    
    # 동전
    money500 = 500
    money100 = 100
    money10 = 10
    
    # 거스름돈
    money50000Cnt = 0; money10000Cnt = 0; money5000Cnt = 0; money1000Cnt =0;
    money500Cnt = 0; money100Cnt = 0; money10Cnt =0;
    
    productPrice = int(input('상품 가격 입력: '))
    payPrice = int(input('지불 금액:'))
    
    if payPrice > productPrice:
        changeMoney = payPrice - productPrice
        changeMoney = (changeMoney // 10)*10
        print('거스름 돈 : {}(원단위 절사)'.format(changeMoney))
    if changeMoney > money50000:
        money50000Cnt = changeMoney // money50000
        changeMoney %= money50000
    
    if changeMoney > money10000:
        money10000Cnt = changeMoney // money10000
        changeMoney %= money10000
    
    if changeMoney > money5000:
        money5000Cnt = changeMoney // money5000
        changeMoney %= money5000
    
    if changeMoney > money1000:
        money1000Cnt = changeMoney // money1000
        changeMoney %= money1000
    
    if changeMoney > money500:
        money500Cnt = changeMoney // money500
        changeMoney %= money500
    
    if changeMoney > money100:
        money100Cnt = changeMoney // money100
        changeMoney %= money100
    
    if changeMoney > money10:
        money10Cnt = changeMoney // money10
        changeMoney %= money10
    
    print('-' * 50)
    print('50,000 {}장'.format(money50000Cnt))
    print('10,000 {}장'.format(money10000Cnt))
    print('5,000 {}장'.format(money5000Cnt))
    print('1,000 {}장'.format(money1000Cnt))
    print('500 {}개'.format(money500Cnt))
    print('100 {}개'.format(money100Cnt))
    print('10 {}개'.format(money10Cnt))
    print('-' * 50)

✔연산자(02)

  • 국어, 영어, 수학 점수 입력 후 총점, 평균, 최고점수 과목, 최저점수 과목,
    그리고 최고 점수와 최저 점수의 차이를 각각 출력

    # 변수 지정
    kor = int(input('국어 점수 입력:'))
    eng = int(input('영어 점수 입력:'))
    math = int(input('수학 점수 입력:'))
    totalScore = kor + eng + math
    avgScore = totalScore / 3
    
    # 코드
    maxScore = kor
    maxSubject = '국어'
    if eng > kor:
        maxScore = eng
        maxSubject = '영어'
    if math > maxScore:
        maxScore = math
        maxSubject = '수학'
    
    minScore = kor
    minSubject = '국어'
    if eng < kor:
        minScore = eng
        minSubject = '영어'
    if math < minScore:
        minScore = math
        minSubject = '수학'
    
    print('총점: {}'.format(totalScore))
    print('평균: %.2f' % avgScore)
    print('-'*30)
    print('최고 점수 과목(점수) : {}({})'.format(maxSubject, maxScore))
    print('최저 점수 과목(점수) : {}({})'.format(minSubject, minScore))
    print('최고, 최저 점수 차이 : {}'.format(maxScore- minScore))
    print('-'*30)

✔ 연산자(03)

  • 시, 분, 초를 입력하면 초로 환산하는 프로그램

    hour = int(input('시간 입력:'))
    min = int(input('분 입력:'))
    sec = int(input('초 입력:'))
    
    print('{}초'.format(format(hour * 60 * 60 + min * 60 + sec, ',')))
  • 현재 시간을 초로 환산하는 프로그램

    import datetime
    
    secCnt = datetime.datetime.now()
    hour = secCnt.hour * 3600
    min = secCnt.minute * 60
    sec = secCnt.second
    total_sec = hour + min + sec
    
    print('{}초'.format(format(total_sec, ',')))
  • 금액, 이율, 거치기간을 입력하면 복리 계산하는 복리 프로그램 제작

    saveMoney = int(input('금액 입력: '))
    rate = float(input('이율: '))
    savePeriod = int(input('기간 입력: '))
    afterMoney = saveMoney
    
    for i in range(savePeriod):
        afterMoney += afterMoney * rate * 0.01
    
    afterMoneyCast = format(int(afterMoney), ',')
    
    print('-'*30)
    print('이율: {} %'.format(rate))
    print('원금: {}원'.format(format(saveMoney, ',')))
    print('{}년 후 금액: {}원'.format(savePeriod, afterMoneyCast))
    print('-'*30)

    ✔ 연산자(04)

  • 고도가 60m 올라갈 때마다 기온이 0.8도 내려 간다고 할 때 고도를 입력하면
    기온이 출력되는 프로그램을 만들어 보자. (지면온도 : 29도)

    startTemp = 29
    step = 60
    stepTemp = 0.8
    
    height = int(input('고도 입력:'))
    
    predictTemp = startTemp - (height // step * stepTemp)
    
    if height % step != 0:
        predictTemp -= stepTemp
    
    print('지면 온도 : {}'.format(startTemp))
    print('고도 {}m의 기온: {}'.format(height, predictTemp))
    print('지면과 고도 {}m의 온도 차이 : {}'.format(height, round(startTemp-predictTemp,1)))

🤦‍♂️오늘 학습 후기

핑계지만 이직한 회사의 업무 적응기간 + 이전 담당자의 인수인계가 없는 상황이라 정신이 없다.
점심시간은 식단으로 대체하고 빠르게 밥먹고 빠르게 진도를 따라가야겠다.
뭔가 쫓기는 기분인데.. 빨리 진도 따라가야 이런 부담감도 없어지지 않을까 싶다.
기초 문풀은 풀면 풀수록 재미있는데 풀다보면 시간이 너무 빨리 간다...

profile
데이터분석가로 직무전환 준비 중 ▣□□□□□

0개의 댓글