파이썬 기초 문법 강의 – 3일차 제어문
벌써 파이썬 3일차인데요. 오늘은 프로그래밍의 꽃(?)이라 할 수 있는 제어문에 대해서 알아보겠습니다.
제어문이란?
제어문은 말 그대로 어떤 조건에 따라서 동작을 제어해주는 문법인데요. 순차/반복/선택의 3가지 동작이 기본적이며, 제어문으로 가장 유명한 것은 아래의 우유짤이 아닐까 싶습니다. 이 제어문을 다 공부하면 이 유머에 대해서 이해하게 될 텐데요.
파이썬의 제어문은 크게 if/while/for문의 3개가 존재합니다. 이 중 while과 for문은 반복문으로 별도로 이야기하기도 합니다.
- If문
- while문
- for문
while과 for문은 반복문으로 사용처가 비슷한데요. 둘의 차이점은 아래와 같습니다.
- while문 : 반복문을 몇 번 실행해야 할지 모르는 상황이거나
사용자의 입력 또는 특정한 값이 나올 때까지 지속적으로 반복할 때 주로 사용 - for문 : 명시적으로 몇번 실행해야 하는지 정해진 상황이거나,
list, array같이 길이가 정해져 있는 값을 이용할 때 사용
개별 문법에 대해서 자세히 알아보겠습니다.
IF문?
IF문은 기본적으로 조건에 따라 동작을 결정하는 문법입니다. 예를 들어 중간고사 성적에 따라 출력을 변경한다고 할 때, 아래처럼 90점이면 A, 80점이면 B, 70점이면 C, 나머지의 경우 D를 출력하는 문법은 아래와 같습니다. 기본적인 구조는 아래와 같고 조건문에 들어가는 문장 중 주의해야할 것은 아래의 두개입니다.
파이썬의 경우 같을 경우 ==을 같지 않으면 !로 표현합니다.
x == y | x와 y가 같다. |
x != y | x와 y가 같지 않다. |
if 조건문:
명령어1
명령어2
…
else:
명령어1
명령어2
score = int(input('중간고사 성적을 입력해주세요.'))
if score >= 90 :
print('A')
elif score >= 80 :
print('B')
elif score >= 70 :
print('C')
else :
print('D')
결과는 위와 같이 나옵니다.
while문
While문은 특정조건을 만족하는 동안 실행하는 반복문인데요. 기본 구조는 아래와 같습니다. 이 때 주의할 점은 반복문의 횟수가 정해져 있지 않는 경우가 많다보 니 꼭 무한루프에 빠지지 않도록 조건을 증가시키거나 감소시키는 명령어를 꼭 추가하는 것이 좋습니다.
while 조건문:
명령어1
이제 사례로 간단히 살펴보도록 하겠습니다. 1부터 10까지 짝수를 더하는 while문인데요. 여기에서 새로 나오는 것은 %2라는 것인데요. %는 나머지를 가져오는 함수입니다. 즉 2로 나눠서 나머지가 0인 숫자, 즉 짝수를 찾는 함수입니다.
if문을 통해 짝수이면 더한 다음 조건인 a를 증가시키고, 홀수이면 그냥 a만 증가시키는 함수입니다.
a = 1
sum = 0
#1부터 10까지 짝수 더하기
while a <= 10:
if a%2 == 0:
sum = sum + a
a = a +1
else :
a = a + 1
print(sum)
결과는 30이 정상적으로 출력됩니다.
For문
for문의 구조는 아래와 같은데요. 이를 통해 아까 입력받은 중간고사 점수를 result라는 리스트로 저장해놨다면, 합격불가를 판단하는 프로그램을 간단하게 만들어 보겠습니다.
for 변수 in 리스트(또는 튜플, 문자열):
명령어1
result = [88, 92, 40, 45, 62]
for score in result:
if score > 60:
print(f'중간고사 {score}점은 합격입니다')
else :
print('중간고사 {}은 불합격입니다.'.format(score))
간단하게 만들어서 사용하실 수 있습니다.
파이썬 함수 만들기
파이썬에서는 동일한 코드의 반복 사용을 막기 위하여 함수를 만들 수 있는데요. def를 통해서 함수를 만들 수 있습니다. 매번 더하기 코드인 x+y를 작성하지 않고 간단하게 add(x,y)를 통해 더하기 함수를 호출할 수 있습니다.
기본 구조는 아래와 같고 입력 변수를 초기화해서 설정하면 해당 값을 입력하지 않아도 됩니다.
def 함수명(입력 변수)
명령어
return값
의 구조로 이루어져 있습니다.
def add(x,y):
result = x+y
return result