파이썬 코칭스터디 1기 - 모두를 위한 파이썬(PY4E) 3강 (조건부 실행)

태온·2021년 7월 23일
0
post-thumbnail

3. 조건부 실행

1. 조건문 (if, elif, else)

  • 조건문이란 참과 거짓을 판단하는 문장이다.

if문(조건문)은 왜 필요할까

우리는 살면서 조건이라는 것을 많이 따지며 살았을 것이다.

예를 한 번 들어보자.

"돈이 있다면 택시를 타고, 돈이 없다면 걸어 간다."

우리 모두에게 일어날 수 있는 상황 중 하나이다. 프로그래밍도 사람이 하는 것이므로 조건을 판단한 후 그 상황에 맞게 처리해야 할 경우가 생긴다. 이렇듯 프로그래밍에서 조건을 판다하여 해당 조건에 맞는 상황을 수행하는데 쓰는 것이 if문이다.

😁 if 문

x = 5
if x < 10: # x가 10보다 작으면
	print('Smaller') # Smaller 출력
if x > 20: # 20보다 크다면
	print('Bigger') # Bigger 출력

print('Finis') #Finis 출력

# 결과
Smaller
Finis

- 비교 연산자

여기서 헷갈리지 말아야 할 것은 === 이다.

==같다 라는 뜻이고, =대입이라는 뜻이다.

예를 들어보면

x == 5 는 x가 5와 같다라는 뜻이고, x=5 는 x는 5라는 뜻이다.


🤗 1. 한 갈래 분기(One-way Decision)

x = 5 
print('Before 5')  # Before 5 출력
if x == 5:  # x 가 5라면
    print('Is 5')  # Is 5 출력
    print('Is Still 5')  # Is Still 5 출력
    print('Third 5')  # Third 5 출력
print('Afterwards 5')  # Afterwards 5 출력
print('Before 6')  # Before 6 출력

if x == 6:  # x 가 6이라면 아래 들여쓰기되있는 문장들 출력
    print('Is 6')
    print('is Still 6')
    print('Third 6')

print('Afterwards 6')  # Afterwards 6 출력
  • 결과 화면

여기서 x = 5 로 선언이 된 후 Before 5가 출력이 먼저 되고, 조건식 if문을 마주치게 된다.

if 조건문 x == 5 이기 때문에 조건에 만족을 하여 들여쓰기 된 문장들이 출력이된다.

조건문이 끝나고 또 print문을 만나게 되어 출력하고, if 조건문 x == 6 이라는 조건문을 만나게 된다. 하지만, x는 5이기 때문에 조건이 만족하지 않게 되어 들여쓰기 된 문장을 출력하지 않고 조건문이 끝난 그 다음 print문을 출력한다. (아래 그림 색깔별 글씨 참고)

😜 들여쓰기(Indentation)

  • if 문을 만들 때는 **if 조건문 : 바로 아래 문장부터 if문에 속하는 모든 문장에 들여쓰기(Indentation)를** 해줘야한다. (위 그림을 참고하여 이해하자.)
if 조건문:
    수행할 문장1
    수행할 문장2
    수행할 문장3
  • 여기서 들여쓰기는 매우 중요하다.
    들여쓰기를 해줌으로써 파이썬은 이것이 조건문의 문장인지 알 수 있다. 들여쓰기를 해주지 않으면 컴퓨터는 다르게 이해 할 것이다.

파이썬은 들여쓰기가 매우 민감하기 때문에 Tab키를 잘못 눌러 공백이 더 됬는지 안됬는지를 확인해주어야하고 들여쓰기는 언제나 같은 너비로 해야한다는 것을 명심하자.
들여쓰기가 되어있는지 내어쓰기가 되어있는지 항상 잘 보자!

😁 2. 중첩된 분기 (Nested Decision) - 두번 들여쓰기 되있군

x = 42
if x > 1: # x 는 42, 1보다 큼으로 조건문 충족
    print('More than one') # 출력
    if x < 100: # 100보다 작으므로 조건문 충족
        print('Less than 100') # 출력
print('All done') # 출력

# 결과
More than one
Less than 100
All done

🤩 3. 두 갈래 분기(Two-way Decision)

if 조건문이 주어질 때 참이거나 거짓이거나 둘 중 하나만 선택할 수 있는 분기이다. 두 분기를 동시에 갈 수있는 방법은 없다. 이 식을 if-else 문이라고 한다.

x = 4
if x > 2: # x가 2보다 크면(참)
    print('Bigger') # Bigger 출력
else: # x가 2보다 작으면 이라는 뜻으로 거짓이므로 실행 X
    print('Smaller')
    
print('All done') # 조건문을 빠져나와 출력

# 결과
Bigger
All done

4. 여러 갈래 분기(Multi-way)

😊 elif문

  • Java와 C언어의 elseif 와 같음
  • 다양한 조건을 판단 할때 쓰인다.
  • if와 else만으로 다양한 조건을 판단하기 어렵기 때문에 elif를 사용한다.

예를 들어보자.

작다, 크다 뿐만 아니라 같다, 중간이다 등 여러가지 조건을 주고 싶을 때 if-else만으로는 표현 할 수없다. 이 때 elif를 사용하면 된다.

이런 여러 갈래 조건문은 첫 번째 조건식이 거짓일 때까지 두번 째 조건식을 확인하지 않는다. 만약 if 조건이 참이면 조건문이 끝난다. 나머지 두 조건(elif와 else)은 실행하지 않는다. 즉, 저 세 조건 중 하나만 실행되는 것이다.

몇 가지 예를 들어보자.

x = 0
if x < 2: # x는 0이므로 2보다 작다 (참)
    print('small')
elif x < 10: # 실행 X
    print('Medium')
else: # 실행 X
    print('Large')

print('All done')

# 결과
small
All done

이 경우는 x = 0 이기 때문에 첫 번째 조건식에서 (if x < 2) 참이 되어 종료됩니다.

이 경우는 x = 5 이므로 첫 번째 조건식(if x<2)는 거짓이 되고, 두 번째 조건식(elif)에서 참이 되어 실행이 되므로 조건문을 끝냅니다.

x = 20 일 경우는 첫 번째 조건식(if), 두 번째 조건식(elif) 둘 다 거짓이므로 그 외 조건인 else 조건문이 참이 됨으로 Large를 출력하게 됩니다. (조건문을 벗어나 그 다음 문장인 그 다음 All done은 당연히 출력)


Try / Except

  • 파이썬에서는 발생할 수 있는 error에 대해서 프로그래머가 미리 대처 할 수 있는 식이다.
  • try 블록의 코드가 성공하면 except 블록은 실행 X
  • try 블록의 코드가 실패하면 except 블록 실행 O

🤔 Try/ Except 는 언제 쓰는가?

str = '이거 되나?'
istr = int(str) # 여기서 에러가 난다.
print('First', istr)

str = '123'
istr = int(str)
print('Second', istr)

위 코드는 실행이 될까? 정답은 되지 않는다. Line 2에서 문자열을 int형으로 바꾸려고 하기 때문에 ValueError가 뜬다. 파이썬은 두 번째에서 에러가 난 것을 발견하고 더 이상 코드를 실행하지 못하고 어쩔 줄 몰라한다. 그러므로 프로그램을 멈춰 버린다. 이 상황을 대처 하기 위해 Try/Except를 사용한다.

Try/Except를 사용해보자.

astr = "123"

try: # 만족함, 성공!
    print("Hello")
    isInt = int(astr)
    print("World")
except: # 실행 X
    isInt = "Integer로 변환할 수 없습니다."

print('Done', isInt)

# 결과
Hello
World
Done 123

📗 참고

모두를 위한 파이썬 (PY4E)

profile
코딩도시락(배워서 남 주자)

0개의 댓글