마케팅/데이터분석(파이썬)

(파이썬/python) 모두를 위한 프로그래밍 : 파이썬 챕터 3 / 조건문

조건문(if else)

 

If 문

if문의 기본적인 형태는 아래와 같습니다.

x=5

if x<10 : #if는 예약어이며, 컴퓨터는 if 다음에 나오는 조건문의 True, False를 판단하게 됩니다.
    print('Smaller')#만약 True인 경우 :(콜론) 아래로 들여쓰기 된 부분을 실행하게 됩니다.
    	#여기서는 Smaller를 출력하게 됩니다.

 

비교 연산자

조건문의 참 또는 거짓을 판별하기 위해 사용되는 비교 연산자들이 있습니다. 아래와 같은 비교 연산자들을 사용합니다.

연산자 의미  예시
> x가 y보다 클 때 True, 그 외에는 False x > y
< x가 y보다 작을 때 True, 그 외에는 False x < y
>= x가 y보다 크거나 같을 때 True, 그 외에는 False x >= y
<= x가 y보다 작거나 같을 때 True, 그 외에는 False x <= y
== x와 y가 같을 때 True, 그 외에는 False x == y
!= x와 y가 다를 때 True, 그 외에는 False x != y

 

들여쓰기 (indentation)

파이썬에서는 들여쓰기를 매우 엄격하게 생각합니다.

들여쓰기가 제대로 되어있지 않다면 파이썬은 문법 에러를 통해 우리에게 도움을 요청하게 됩니다.

x = 5

if x < 10 :
print('Smaller')

if 아래의 문장에서 들여쓰기(띄어쓰기 4번 or Tab 1번)를 해줘야 제대로 동작합니다.

 

단일 if 문, if else 문

 

단일 if 문

단일 if문으로 사용하는 경우, 조건문이 참인 경우에만 미리 입력해 놓은 실행코드를 실행하게 됩니다.

x = 5

if x < 10 :
    print('Smaller')

 

if else 문

첫번째 조건문의 조건이 거짓인 경우에 대해 처리하기 위해 우리는 else를 사용할 수가 있습니다.

즉, 첫번째 if문의 조건이 거짓인 경우 else문 이하의 실행코드가 실행됩니다.

x = 11

if x < 10 :
    print('Smaller')
else :
    print('Bigger')
    
#11 < 10은 False 입니다.
#따라서 Bigger가 출력됩니다.

 

주의사항

조건문(if, else)을 사용할 때에는 주의할 점이 2가지 있습니다.

 

1) 조건문 후에 : (콜론)을 찍어야 한다.

2) 조건문이 참일 경우 실행할 코드는 들여쓰기를 해야한다.

 

다중 분기 (Multi-way decisions)

우리는 하나의 조건문 블럭에 프로그래머의 필요에 의해 조건문들을 추가할 수 있습니다.

elif라는 예약어를 통해 가능합니다.

x=21

if x < 2 :
    print('Small')
elif x < 10 :
    print('Medium')
elif x < 20 :
    print('Big')
elif x < 40 :
    print('Large')
elif x < 100 :
    print('Huge')
else :
    print('Ginormous')

#Large가 출력됩니다.

 

try / except

파이썬에서는 발생할 수 있는 error에 대해서 프로그래머가 미리 대처를 할 수 있도록 하였습니다. 이는 try / except로 가능합니다.

 

astr = "123"

try:
    print("Hello")
    islnt = int(astr)
    print("World")
except:
    islnt = "Integer로 변환할 수 없습니다."
    
print('Done', islnt)
#Hello
#World
#Done 123이 순서대로 출력됩니다.

 

예를들어 사용자가 입력값으로 숫자만 넣어야 하는 경우 문자를 넣었을 때 프로그램이 종료되고 멈출 것이 아니라, 올바른 입력값을 넣도록 하는 것이 합리적인 방법이겠죠

 

연습문제 1

챕터 2의 시급계산기에 초과근무수당을 포함하여 프로그램을 만들어라.

sh=input("Enter Hours: ")
sr=input("Enter Rate: ")
fh=float(sh)
fr=float(sr)
#print(fh, fr)
if fh > 40 :
    #print("Overtime")
    reg = fr * fh
    otp = (fh-40.0) * (fr * 0.5)
    #print(reg,otp)
    xp = reg + otp
else :
    #print("Regular")
    xp = fh * fr
print ("Pay",xp)

 

연습문제 2

연습문제 1의 시급계산기의 input 란에 숫자 외의 것을 넣었을때 오류 메시지를 출력하는 프로그램을 만들어라

sh=input("근로시간 : ")
sr=input("시간 당 급여 : ")
try:
    fh=float(sh)
    fr=float(sr)
except:
    print("오류가 발생했습니다. 올바른 값을 넣어주세요.")
    quit()
if fh > 40 :
    reg = fr * fh
    otp = (fh-40.0) * (fr * 0.5)
    xp = reg + otp
else :
    xp = fh * fr
print ("급여",xp)