모두를 위한 파이썬(PY4E) [3. 조건부 실행] 강의

권혁준·2022년 4월 3일
0
post-thumbnail

Charles R. Severance (찰스 R. 세브란스)의 <모두를 위한 파이썬(PY4E)> 수강 내용
https://www.boostcourse.org/cs122/joinLectures/284901

3. 조건부 실행

1) 조건문(if else)

학습목표

조건부 실행(Conditional Execution)에 대해서 알아본다.
조건부 실행은 우리의 코드가 무언가가 검사하거나 결정을 내릴 때 사용한다.
파이썬 명령문을 실행시키거나 넘어가는 방법을 알아보도록 한다.

핵심키워드

  • 조건부 실행(Conditional Execution)
  • 들여쓰기
  • if
  • else

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

x=5

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

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

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

들여쓰기(indentation)
파이썬에서는 들여쓰기를 매우 엄격하게 생각한다.
들여쓰기가 제대로 되어 있지 않다면 파이썬은 문법 에러를 통해 루리에게 도움을 요청하게 된다.

x=5

ifx<10:
print('Smaller')
  • 조건문에서 x가 가진 값이 10보다 작기 때문에 Smaller가 출력될까?
    하지만 들여쓰기를 제대로 하지 않아기 때문에 파이썬은 아래와 같이 들여쓰기 에러를 통해 잘못되었어!라고 이야기해준다.
File "part2.py", line 4
	print('Smaller')
      ^
IndentationError: expected an indented block
  • 통상 들여쓰기는 [Tab] 또는 [Space] 네 번과 같다.
    컴퓨터가 탭을 잘못 인식하는 경우도 있으므로 Tab보다는 Space 네 번으로 사용하자

단일 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. 조건문이 참일 경우 실행할 코드는 들여쓰기를 해야한다.
코드를 실행시켰는데 에러가 난다면 위의 두 조건을 제대로 지켰는지 다시 한 번 확인해보자 :)


2) 조건문(elif)과 예외처리(try, except)

학습목표

다중 분기(Multi-way Decision) 조건문을 이해하고 사용할 수 있다.
try / except 문을 이용하여 오류를 처리할 수 있다.

핵심키워드

  • 다중 분기(Multi-way Decision)
  • try / except

다중 분기(Multi-way Decision)
하나의 조건문 블럭에 프로그래머의 필요에 의해 조건문들을 추가할 수 있다.
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")
    isInt = int(astr)
    print("World")
except:
    isInt = "Integer로 변환할 수 없습니다."

print('Done', isInt)
# Hello
# World
# Done 123이 순서대로 출력
  • ex) 사용자가 입력값으로 숫자만 넣어야 하는 경우 문자를 넣었을 때 프로그램이 종료 되고 멈출 것이 아니라, 올바른 입력값을 넣도록 하는 것이 합리적인 방법이다.

3) 조건문(if, else) 활용

실습
Exercise 3-1
Rewrite your pay computation to give the employee 1.5 times the hourly rate for hours worked above 40 hours.

# Exercise 3-1
sh = input("Enter Hours: ")
sr = input("Enter Rate: ")
fh = float(sh)
fr = float(sr)
# print(fh,fr)
if fh > 40 :
	# print("Overtime")
    regp = fr * fh
    ovtp = (fh-40.0) * (fr * 0.5)
    # print(regp,ovtp)
    xp = regp + ovtp
else:
	# print("Regular")
	xp = fh * fr
print("Pay:",up)

4) 예외처리(try, except)를 이용한 에러 해결

실습
Exercise 3-2
Rewrite your pay program using try and except so that your program handles non-numeric input gracefully by printing a message and exiting the program. The following shows two executions of the program.

sh = input("Enter Hours: ")
sr = input("Enter Rate: ")
try:
	fh = float(sh)
	fr = float(sr)
except:
	print("Error, please enter numeric input")
    quit()
    
print(fh,fr)
if fh > 40 :
    regp = fr * fh
    ovtp = (fh-40.0) * (fr * 0.5)
    xp = regp + ovtp
else:
	xp = fh * fr
print("Pay:",up)

5) Quiz 3

profile
비전공개발자의 개발일지

0개의 댓글

관련 채용 정보