[2일차] 파이썬 기초 7

하은·2023년 10월 12일
0

- 조건식

- 어떠한 조건에 따라 실행이 분기 되는 식

- A if 조건식 else B : 조건식의 결과가 True이면 A실행, 그렇지 않으면 B실행

num1 = 10
num2 = 100

# 첫번째 방법
numResult = True if num1 > num2 else False
print('num1 > num2 : {}'.format(numResult))

# 두번째 방법
print('num1은 num2보다 크다.') if numResult else print('num1은 num2보다 크지않다.')

-->
num1 > num2 : False
num1은 num2보다 크지않다.

실습) 적설량을 입력하고 적설량이 30mm이상이면 대설경보를 발령하고, 그렇지 않으면 대설경보를 해제하는 코드를 작성해보자

limitSnowAmount = 30
snowAmount = int(input('적설량 입력(mm) : '))

print('적설량: {}mm, {}'.format(snowAmount, '대설경보 발령!'))if snowAmount >= limitSnowAmount else \
    print('적설량: {}mm, {}'.format(snowAmount, '대설경보 해제!'))
    
--> 
적설량 입력(mm) : 20
적설량: 20mm, 대설경보 해제!

실습) 국어, 영어, 수학 점수를 입력하면 조건식을 이용해서 과목별 결과와 전체 결과를 출력하는 코드를 작성해보자

import _operator

passScore1 = 60
passScore2 = 70

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

totalScore = korScore + engScore + matScore
avgScore = totalScore / 3

print('국어 : pass') if _operator.ge(korScore, passScore1) else print('국어 : Fail')
print('영어 : pass') if _operator.ge(engScore, passScore1) else print('영어 : Fail')
print('수학 : pass') if _operator.ge(matScore, passScore1) else print('수학 : Fail')
print('시험 : pass') if _operator.ge(avgScore, passScore2) else print('시험 : Fail')

print('총합: %d, 평균: %.2f' % (totalScore, avgScore))

-->
국어 점수 : 100
영어 점수 : 50
수학 점수 : 60
국어 : pass
영어 : Fail
수학 : pass
시험 : pass
총합: 210, 평균: 70.00

- 조건문 (if문)

- 제어문

1) 조건문 : 특정 조건의 결과에 따라 프로그램을 분기

특정조건에 만족(true) -> 실행문 / 불만족(false) -> 실행x

2) 반복문 : 프로그램이 반복실행

프로그램을 제어하는데 굉장히 중요한 구문

- 조건문 종류

  • if문 -> 단일조건 : 만족하면 실행
  • if ~ else문 -> 양자택일(true / false) 예) 미만
  • if ~ elif문 -> 다자택일(다중조건) 예) 성적별 학점

- if문

  • if 조건식: T -> 실행 / F -> 실행X
  • ' : ' 조건식이 끝나고 실행식이 시작된다는 뜻

  • 조건식 뒤에 ' : ' 를 찍어줘야 하고, 실행문 앞은 tab을 이용해서 몇 줄이 되든 다 '들여쓰기' 해야함.
  • 들여쓰기 한 실행문들 = 코드블럭
if 10 > 5:
    print('10은 5보다 크다.')
    print('또 다른 실행문!')

print('조건문이 끝났어요.')

num1 = 10
num2 = 20

if num1 > num2:
    print('num1 <= num2')
    
-->
10은 5보다 크다.
또 다른 실행문!
조건문이 끝났어요.

실습) 국어, 영어, 수학 점수를 입력하고 평균이 90점 이상이면 '참 잘했어요'를 출력하는 코드를 작성하자

korScore = int(input('국어 점수 입력: '))
engScore = int(input('영어 점수 입력: '))
matScore = int(input('수학 점수 입력: '))

avgScore = (korScore + engScore + matScore) / 3
print('평균 : {}'.format(avgScore))

if avgScore >= 90:
    print('참 잘했어요')

실습) 실내 온도를 입력하고 온도가 28도 이상이면 '냉방 작동!'이 출력되고, 20도 이하면 '난방 작동!'이 출력되는 코드를 작성하자

highTemperature = 28
lowTemperature = 20

innerTemperature = int(input('실내 온도 입력: '))

if innerTemperature >= highTemperature:
    print('냉방 작동!')

if innerTemperature <= lowTemperature:
    print('난방 작동!')

- 양자택일 조건문

- if ~ else : 조건식 결과에 따라 둘 중에 하나가 실행됨

  • if문 다음에 :를 찍고, else문 앞에 들여쓰기(=코드블럭)하기
passScore = 80
myScore = int(input('점수 입력: '))

if myScore >= passScore:
    print('pass!')
if myScore < passScore:
    print('fail!')

로 할 수도 있지만,

if myScore >= passScore:
    print('pass!')
else:
    print('fail!')

if ~ else문을 사용할 수도 있다

- pass 키워드

  • 조건문은 결정했는데, 실행문을 비워두면 에러가 난다.
  • 이럴 땐 조건문을 명시해놓고, 참일 경우의 실행문은 결정되면 실행하겠다면? = pass를 넣어주면 넘어간다.
    = 나중에 작성하겠다를 나타내는 키워드

*print(len(' 가나다))
--> 4
= len함수는 공백문자까지 수를 센다! 문자열의 길이를 나타냄

실습) 나이가 65세 이상이면 교통 요금 무료를 적용하는 프로그램을 만들어보자

seniorAge = 65

passengerAge = int(input('나이 입력: '))

if passengerAge >= seniorAge:
    print('무료 대상 승객입니다.')
else:
    print('유료 대상 승객입니다.')

실습) 소수점 첫 번째 자리에서 반올림하는 프로그램을 만들어보자

floatNum = float(input('소수입력: '))

if floatNum - int(floatNum) >= 0.5:
    print('올림 : {}'.format(int(floatNum) + 1))
else:
    print('버림 : {}'.format(int(floatNum)))

If ~ else문과 조건식

- 조건식(삼항연산자)의 두 가지 사용법

- 조건식 결과에 따른 실행만 하는 경우

바로 실행하고 끝남

userPoint = int(input('포인트 입력: '))
minAblePoint = 1000

print('포인트 사용 가능') if userPoint >= minAblePoint else print('포인트 사용 불가능')

- 조선식 결과를 변수에 할당하는 경우

참 거짓에 따라 데이터 결과가 할당된다
저장해뒀기 때문에 프린트에 따라 사용가능하다

result = '가능' if userPoint >= minAblePoint else '불가능'
print('포인트 사용 가능 여부 : {}'.format(result))

- 조건식 vs. If ~ else문

- 조건식 -> if ~ else문: 모든 조건식(삼항연산자)은 if ~ else문으로 변경할 수 있다.

print('포인트 사용 가능') if userPoint >= minAblePoint else print('포인트 사용 불가능')

# 또는 

if userPoint >= minAblePoint:
    print('포인트 사용 가능')
else:
    print('포인트 사용 불가능')
result = '가능' if userPoint >= minAblePoint else '불가능'
print('포인트 사용 가능 여부 : {}'.format(result))

# 또는

if userPoint >= minAblePoint:
    result = '가능'
else:
    result = '불가능'
print('포인트 사용 가능 여부 : {}'.format(result))

- If ~ else문 -> 조건식: 모든 if ~ else문을 조건식(삼항연산자)으로 변경할 수 있는 것은 아니다.

조건식은 실행문이 간단해야함.

if userPoint >= minAblePoint:
    result = '가능'
else:
    result = '불가능'
    lackPoint = minAblePoint - userPoint
    print('포인트가 {} 부족합니다.'.format(lackPoint))

이렇게 실행문이 여러개가 될 경우, 조건식으로 바꾸기에는 무리가 있다.

실습) 비 올 확률을 입력하고, 비 올 확률이 55% 이상이면 '우산을 챙기세요'를, 그렇지 않으면 '양산을 챙기세요'를 출력하는 코드를 작성하자 (조건식과 if ~ else문을 이용해서 각각 작성해보자)

rainPercentage = int(input('비 올 확률 입력: '))
minRainPercentage = 55


print('우산 챙기세요.') if rainPercentage >= minRainPercentage else print('양산 챙기세요.')

# 또는

if rainPercentage >= minRainPercentage:
    print('우산 챙기세요.')
else:
    print('양산 챙기세요.')

실습) 다음의 요구사항을 해결하기 위해 조건식과 if ~ else문 중 알맞은 구문을 사용해보자

조건식: 간단한 실행문에 적합함
여기서는 실행문이 길기 때문에 if ~ else문이 적합함.

minimumTemperature = int(input('최저기온 입력: '))
maximumTemperature = int(input('최고기온 입력: '))
dailyTemperatureRange = maximumTemperature - minimumTemperature

if dailyTemperatureRange >= 11:
    print('일교차 : {}도'.format(dailyTemperatureRange))
    print('감기 조심하세요.')
else:
    print('일교차 : {}도'.format(dailyTemperatureRange))
    print('산책하기 좋은 날씨입니다.')

0개의 댓글