본문 바로가기
자료분석 및 코딩/파이썬

[파이썬] 3-3. 기본문법 - 조건문(if문)과 반복문(for문)

by 아다콘다 2023. 3. 28.

 오늘은 자료분석 스크립트를 짜다보면 거의 무조건 쓰게되는 문법인 조건문과 반복문에 대해 알아보겠다. 처음 자료분석에 입문할 때는 이 if문과 for문을 어떤 상황에서 어떻게 써야하는지 감이 안오지만 한 두번 해보다 보면 정말 간단하면서도 필수적인 문법으로 느껴진다.

 

1. 조건문 - if / else / elif

 조건문이란 '이럴땐 이렇게하고 저럴땐 저렇게 해라' 는 명령을 수식으로 나타내는 것이다. 자료분석에서는 특히, 어떤 값 이상일때는 ~~~~, 이하일 때는 ~~~~와 같이 조건을 거는 경우가 많다. 이러한 각 경우를 'if'와 'elif'와 'else'로 각각의 경우에 따라 로직 및 연산을 구현하는 것이다.

  • if ~A~ : A라는 조건에 맞는다면 실행
  • elif ~B~ : A라는 조건에 맞지 않는 것 중 B라는 조건에 맞는다면 실행
  • else : 다 아니면 이걸 실행

 조건과 명령문은 ':'와탭(들여쓰기)로 구분한다. 'if' 뒤에 조건을 입력하고 ':' 로 마친 뒤 다음 문장에서 들여쓰기 후 명령문을 입력한다. x가 0보다 클때는 '양수', 작을 때는 '음수 또는 0'을 출력하는 명령을 예로 들어보면 아래와 같이 입력하면 된다.

if x > 0 :
	print('양수')
else :
	print('음수 또는 0')

 매트랩에서는 if, else, elseif, end를 사용하고 end로 조건문의 끝을 표기해주지만 파이썬에서는 별다른 종료구문 없이 그냥 다음줄을 비워두면 된다. elif는 조건을 추가할 때 사용한다. 위의 if문에 x가 0일때인 조건을 추가해보면, 1) 0보다 크면 '양수', 2) 0보다 작으면 '음수', 3) 둘다 아니면(0이면) '0' 출력해보면,

if x > 0 :
	print('양수')
elif x < 0 :
	print('음수')
else :
	print('0')

파이썬 if문 사용 예시
파이썬 if문 사용 예시

위와 같이 결과가 잘 출력되는 것을 확인할 수 있다. 조건의 갯수는 elif를 활용하여 맘껏 늘릴 수 있다.

1.1 비교 연산자

 if문을 통해 조건식을 세울 때 <, >, =와 같은 부등호로 비교를 한다. 이상, 이하와 같은 크거나 같다는 >=, <=와 같이 표기하며, 같을 때는 == 으로 표기한다. 같지 않을 때는 !=로 표기한다(매트랩에서는 ~=).

  • a > b : a가 b보다 클 때
  • a < b : a가 b보다 작을 때
  • a >= b : a가 b보다 크거나 같을 때
  • a <= b : a가 b보다 작거나 같을 때
  • a == b : a와 b가 같을 때
  • a != b : a와 b가 같지 않을 때

1.2 논리 연산자

 2개 이상의 조건을 걸 때 사용한다. and와 or이 있는데 and는 '그리고' 두 조건 모두 충족할 때, or는 '또는' 둘 중 하나만 충족할 때 명령을 수행한다. 예를 들어 'a가 3보다 크고, 7보다 작을때'라는 조건을 걸 때는 'a > 3 and a < 7' 와 같이 입력하면 된다. 'a가 7보다 크거나 3보다 작을 때' 라는 조건은 'a>7 or a<3' 과 같이 입력하면 된다. 

  • and : 조건 모두 충족할 때,
  • or : 조건 중 하나라도 충족할 때,

 

2. 반복문 for / while

2.1 for

 조건문 만큼 자주 쓰는 문법이다. 말 그대로 동일한 명령을 입력변수만 바꿔서 반복 수행하는데, 자료분석시, 어떤 행렬에 대해 반복적으로 동일 연산을 수행할 때 행렬의 범위만큼 for문을 통해 반복연산 가능하다. 100줄의 명령을 for문을 통해 1줄의 명령으로 연산을 수행할 수 있다. 사용법은 if문과 비슷한데 for와 in을 사용한다. for 뒤에 반복문에 들어갈 변수이름을 적고 in 뒤에 변수의 범위를 적어준다. 

for i in 1,2,3,4,5:
	a = i * 5
	print(a)

 위와 같이 입력하면, i에 1,2,3,4,5를 차례로 대입하며 반복명령을 하여 a를 계산하고 그 결과인 5, 10, 15, 20, 25를 출력하게 된다. 

파이썬 for문 사용 예시
파이썬 for문 사용 예시

 이처럼 직접 범위를 적어줘도되고, range라는 함수를 사용해도 된다. range는 연속된 숫자를 만드는 함수이다. range 사용법은 매트랩의 linspace와 유사한데, 숫자 하나만 넣으면 0부터 연속된 숫자를 나타내고 범위를 넣을 수도 있다. range(5)는 0부터 5개의 숫자인 0,1,2,3,4를 나타내고 range(1,5)는 1,2,3,4(1부터 5번째 숫자인 4)를 나타낸다. 또한, linspace처럼 간격을 조절할 수도 있는데 range(1,10,2)처럼 입력하면 1부터 10까지의 수를 2간격으로 나타낸다. range(시작값, 종료값, 간격(증분))으로 나타내며, 결과는 종료값이 포함되지 않도록 나타내니, 10 이전의 숫자까지인 1, 3, 5, 7, 9를 나타낸다.

  • range(n) : 0부터 n번째까지의 연속된 수 리스트
  • range(start, end) : start부터 end번째까지의 연속된 수 리스트
  • range(start, end, interval) : start부터 end번째까지 interval 간격의 수 리스트

파이썬 for문 range 활용 예시
파이썬 for문 예시

 위처럼 range를 활용해도 되고, 변수 범위를 직접 입력해도 되고, 문자열 리스트를 입력해도 된다.

 

 

2.2 while

 while문도 for문과 유사한데 범위 대신 조건을 입력하여 조건이 충족하면 반복하는 명령이다. 입력변수의 크기를 늘려가며, 어떠한 값에 도달할때까지 반복 수행할 때 사용한다. 아래 예시코드를 보면, i의 초기값은 10이고 i에 1씩 더하는 명령을 i가 15가 되기전까지 수행하는 명령이다. 결과는 11,12,13,14,15가 출력된다.

i = 10
while i < 15:
	i = i+1
    print(i)

 

2.3 break

 break는 반복문 중 특정 시점에서 반복루프를 종료할 때 사용한다. for문이나 while문으로 명령을 수행하는 도중에 변수가 특정값에 도달하면 반복을 중지시킬 수 있다. 조건을 입력해야하니, if문과 같이 쓰이고 아래와 같이 사용할 수 있다.

for i in range(1,1000):
	print(i)
    if i==15:
    	break

 위와 같이 입력하면 i를 1부터 999까지 반복하며 출력하는데, 중간에 i가 15가 될 때 명령을 중단한다.

파이썬 for문&#44; if문&#44; break 사용 예시
파이썬 for문, if문, break 사용 예시

여기까지 파이썬 및 자료분석에 필요한 필수적인 문법에 대해 알아보았다. 다음부터는 이러한 함수 및 문법을 활용해 실제 자료을 처리하는 법에 대해 알아보도록 하겠다.

반응형