프로그래밍 언어/Python

파이썬(python) #11_ 제어문(if문, while문, for문)

Tigercow.Door 2018. 2. 16. 23:51


안녕하세요.

이번 포스팅에서는 파이썬에서의 제어문에 대해 알아보려고 합니다.

다른 언어를 공부하셨던 분들은 익숙하실 겁니다.

개인적으로 느끼기엔 처음 공부하시는 분들도 다른 언어에 비해 이해하기 쉽고 간편하다고 생각됩니다.

궁금하신점은 언제든지 댓글이나 이메일을 이용해주세요 :)


1. if문


우리는 일상생활에서 다음과 같은 말을 자주 이용합니다.

" A 면, B 해라 "

즉, A라는 조건이 참(True)일때 B라는 행동을 하라는 것이죠.

영어에서는 이러한 문장을 if문을 이용해서 나타냅니다.

그리고 이러한 것을 표현할때 파이썬에서도 if를 사용합니다.

먼저 간단한 예시를 보겠습니다.

아래 예시는 money라는 변수에 5000이라는 정수값을 저장하고, money가 3000이상이면 택시를 타고, 그렇지 않으면 버스를 타라는 문장을 출력해보는 예시입니다.



설명해준 것과 예시의 코드를 비교해서 보시면 쉽게 이해가실 겁니다.

먼저 첫번째 문장에서 money 변수에 5000이라는 정수값을 저장하였습니다.

그리고 두번째 문장에서 if 제어문을 사용하였습니다.

그리고 그 아래에서는 if 제어문의 조건이 참일때 실행되는 문장이고

그것이 아닐때, else일때 실행되는 문장이 이어서 작성되었습니다.


파이썬에서 if문은 아래와 같은 형식으로 사용됩니다.


if <조건1>:

<조건1이 True일때 실행되는 문장>

elif <조건2>:

<조건1이 False이고 조건2가 True일때 실행되는 문장>

elif <조건3>:

<조건1과 조건2가 False이고 조건3이 True일때 실행되는 문장>

else:

<조건1, 조건2, 조건3이 모두 False일때 실행되는 문장>


위의 형식에서 elif문은 생략이 가능할뿐 아니라 개수에 상관없이 추가가 가능합니다.



2. if문에서의 조건문 형식


그럼 if문에서 <조건>은 어떤식으로 작성될까요?

처음 예시에서 보여드린 것처럼, 수학의 대소비교등의 기호도 사용되지만 보다 많은 구문도 사용가능합니다. 


먼저, 수학에서의 다양한 기호가 사용가능합니다.

A > B 와 같이 A가 B보다 크다 또는 A<= B와 같이 A가 B보다 작거나 같다의 의미도 나타낼 수 있으며

A == B와 같이 A와 B가 같다라는 조건도 가능합니다.


두번째, and / or / not 입니다.

A and B는 A와 B가 모두 True일때 True를 반환합니다.

A or B는 A또는 B중 하나 이상이 True일때 True를 반환합니다.

not A는 A의 반대를 반환합니다. 즉 A가 False일때 not A는 True를 반환합니다.


세번째, A in list/tuple/문자열 입니다.

A in list는 해당 list 내부에 A라는 요소가 포함되어 있을때 True를 반환합니다.

list 대신 tuple, 문자열도 사용될 수 있습니다.



3. while문


다음으로 알아볼 제어문은 while문 입니다.

while문은 다음과 같이 사용됩니다.

다음의 예시가 나타내는 바는, money에 1000이라는 정수값을 저장하고, money가 3000미만이면 money에 500원을 추가하며 3000이상일때 까지 반복한다. 그리고 money가 3000이상이면 이를 중단하고 택시를 탈수 있다는 문장을 출력합니다.



그리고 while문에서 응용될 수 있는 두가지 구문이 있습니다.

break와 continue인데, 먼저 break는 while문에 대한 조건과 상관없이 while문을 빠져나오는 구문입니다.

그리고 continue는 while문의 첫문장으로 돌아가도록 하는 구문입니다.


특히, while문에서는 무한루프가 발생할 수 있습니다.

아래와 같은 경우에서 무한루프가 발생합니다.

temp = 2

while temp%2 == 0:

temp = temp*3


temp 변수의 초기값은 2였습니다. 그리고 temp를 2로 나누었을때 나머지가 0이면 while문이 수행됩니다.

그리고 while문 내에서 temp 값에 3을 곱해서 그대로 저장합니다.

그렇다면 temp 값은 2*3^n 꼴이기 때문에 2로 아무리 나누어도 계속해서 나머지가 0입니다.

때문에, 해당 코드에서 while문을 빠져나오지 못하고 무한루프에 갇히게 됩니다.


무한루프는 실용적으로 사용할 수도 있지만, 일반적으로 무한루프가 발생하지 않도록 하는 것이 좋다고 합니다.



4. for 문


마지막으로 살펴볼 제어문은 for문 입니다.

for문은 아래와 같은 형식을 가지고 있습니다.


for <변수> in <리스트/튜플/문자열>:

<수행할 문장1>

<수행할 문장2>

...


먼저 in 뒤에 나와있는 리스트 또는 튜플 또는 문자열의 맨 앞의 요소부터 마지막 요소까지 하나씩 꺼내어서 변수에 저장합니다. 즉, 아래 예시와 같이 작동하는 것입니다.




for문에서 자주 함께 사용되는 함수로는 range()함수가 있습니다.


range함수는 숫자 리스트를 만들어 주는 함수로써 다음의 형식을 가집니다.

range(A,B) : A, A+1, A+2, ... , B-2, B-1

즉, range(A,B)는 A이상, B미만의 값을 가진 리스트입니다.

따라서 아래의 예시와 같이 사용될 수 있습니다.





이렇게 파이썬에서 사용되는 제어문들에 대해서 간단히 알아보았습니다.

연습하시다가 막히는 부분이나 추가적으로 궁금한 사항은 언제든 말씀해주세요 :)


728x90