# 파이썬 제어문



제어문이란 프로그래밍 언어에서 실행순서를 변경시키거나 또는 조건에 따라 실행해야 할 명령문을 제어하는데에 사용되는 구문입니다. 일반적으로 프로그램은 위에서 아래로 순차적으로 실행되지만, 어떤 조건에 대해서만 실행해야 하는 경우나 특정 부분을 반복하여 실행해야 하는 경우 등이 있습니다.

python에서는 if, for, while문을 사용하여 흐름을 제어할 수 있습니다.



1. if문


if문은 일반적으로 프로그램의 흐름을 조건에 따라 다르게 해야하는 경우 사용합니다. 예를 들어 홀, 짝을 구분해야하는 프로그램에서는 if 조건에서 2로 나눈 나머지 연산의 결과가 0이냐 1이냐에 따라 다른 흐름을 갖도록 작성해야 겠죠?


if문을 선언하는 방법은 아래와 같습니다. if뒤에 조건을 넣어주고 그 값이 참이면 동작하고 참이 아니면 동작하지 않습니다.

여러가지 조건을 넣고 싶은 경우에는 elif 명령어를 씁니다. elif는 기존 if가 참이아니라 동작하지 않았을 경우 다른 대안을 제시하는데에 사용합니다. 물론 if가 참이 아니라고해서 elif가 무조건 동작하는 것은 아닙니다. 반드시 '조건이 참일 때'라는 전제조건을 수반합니다.


if나 elif의 조건에 부합하지 않았을 경우 실행시킬 루틴을 작성하고 싶을 때에는 else 명령어를 사용하시면됩니다. if나 elif가 참이 아닐경우 무조건 else가 실행됩니다.


ps.elif가 없어도 else사용가능


 

1
2
3
4
5
6
7
8
9
#elif를 추가하면 다중 조건 사용가능
#else는 위 조건에 부합하지 않는 모든 조건(여집합)
 
if 조건1:
    ...
elif 조건2:
    ...
else :
    ...
cs


하위 구문을 작성할 때 파이썬만의 독특한점이 있는데요 바로 indent라는 것입니다. indent는 들여쓰기라는 뜻입니다. 즉 하위 구문을 들여쓰기의 정도로 구분하겠다는 소리죠. 파이썬에서 공식적으로 indent로 인정받는 것은 space 4번과 tab입니다. tab이 에디터 상에서 space 4번과 동치일 경우에만 tab이 indent로 인정받는데 대부분의 에디터가 그러합니다. 하지만 간혹 space 8번으로 인식하는 경우가 있으므로 주의하셔서 사용하시면 됩니다.



2. 비교 연산자


비교 연산자라는 것은 값을 비교하여 참, 거짓을 판단해야 할 경우 사용합니다. if 문에서는 조건이 참인지 거짓인지의 여부가 대단히 중요하기 때문에 비교연산자를 상당히 많이 사용하게됩니다.

그럼 연산자의 종류에 관하여 알아볼까요?


 연산자

 설명

a < b

 a가 b보다 작으면 true 

a > b

a가 b보다 크면 true

a == b

a와 b가 같으면 true

a != b

a와 b가 같지 않으면 true

a >= b

a가 b보다 크거나 같으면 true

a <= b

a가 b보다 작거나 같으면 true


꽤 많은 연산자의 종류가 있습니다. 상황에 따라서 바꿔가며 사용하시면 됩니다.

추가적으로 if문은 0이 아닌 숫자나 비어있지 않은 자료형에 관하여 true로 인식합니다. 즉 1도 true고 'a'도 true입니다. 하지만 빈 리스트나 빈 튜플같이 비어있는 자료형은 false로 인식합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if 'a':
    print("1_True")
 
if 1:
    print("2_True")
 
if []:
    print("3_True")
 
if '':
    print("4_Ture")
 
# 결과 값
# 1_True
# 2_True
cs



3. 논리연산자


논리연산자는 조건식이나 값을 논리적으로 판단하여 참과 거짓을 판단하는데 사용됩니다. 일반적으로 if문에서는 조건을 다중으로 설정하고 싶을 경우에 사용합니다.


다른 언어에서 && 나 ||와 같은 연산자가 파이썬에서는 명령어 형태로 제공되고 있으니 명령어를 꼭 기억하셔야 합니다.


그리고의 조건을 만드는 연산자는 and입니다. 다른 언어에서의 &&과 똑같습니다. or 명령어는 다른언어에서의 ||와 같고 ~이거나라는 조건식을 만드는데에 사용됩니다.


마지막으로 조건을 부정하는 연산자는 !연산자입니다. 파이썬에서는 not이라는 명령어로 제공됩니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
= 2
= 3
 
if a%2==0 and b%2==0:
    print("1_True")
 
if a > 3 or b < 5:
    print("2_True")
 
if not a==b:
    print("3_True")
 
# 결과 값
# 2_True
# 3_True
cs


4번 라인을 보시면 a는 짝수이기 때문에 첫번째 조건에서 true를 반환합니다. 하지만 두번째 조건이 맞지않아 if 절이 실행되지 않았습니다. and 연산자가 두개의 조건이 전부 참일 때만 ture를 반환하기 때문이죠.

반대로 7번 라인에서는 첫번째 조건이 false고 두번째 조건이 true인데 true로 인식이 되었습니다. or 연산자 때문인데요 둘중 하나만 참이면 true를 반환합니다.

마지막으로 not 연산자는 조건을 반전시킨다고 했죠 ? a==b는 누가 봐도 false입니다. 하지만 앞에 not을 붙여서 true로 인식이 됩니다.



'Dev > python' 카테고리의 다른 글

[python] 시퀀스 자료형과 이터러블  (1) 2019.03.23
[python] 제어문(if, for, while) - 2  (0) 2019.03.23
[python] 튜플과 Immutable  (0) 2019.02.14
[python] 딕셔너리(dictionary)  (0) 2019.02.13
[python] 리스트 함수  (0) 2019.02.11

+ Recent posts