이번에 다룰 주제는 파이썬에서 제어구문을 생성하는 방법입니다. 흐름 제어라고 하면 조금 어려운 개념이라고 생각할 수 있지만, 사실 전혀 어려운 내용은 아니라고 생각합니다. 비가 안 오면 외출을 한다, 비가 오면 방콕을 한다. 국어 점수가 90점 이상이면 A등급, 80~89점이면 B등급, 50점 이하면 F 등급 처럼 어떤 조건에 따라 어떤 명령문을 실행할 지를 결정 하는 것이 흐름 제어 명령문입니다.
흐름 제어를 사용하기 위해서는 먼저 참과 거짓을 판별하는 기능과, 비교 연산자의 사용법을 알아야 합니다. 그래서 먼저 이 부분에 대해 설명 드리도록 하겠습니다.
부울(Boolean) 값과 비교 연산자(Comparison Operators)
>>> 사과 = True >>> 사과 True >>> 배 = False >>> 배 False >>>
파이썬 쉘모드에서 위와 같이 입력했습니다. 이렇게 입력 후 출력되는 값이 부울 값입니다.
부울 값은 True 와 False 가 있습니다. True = 참, False = 거짓 입니다. 파이썬은 대소문자를 구분하기 때문에 true(x), false(x) 처럼 소문자는 사용할 수 없습니다. 위에서 사과 라는 변수에 True 를 지정했습니다. 이제 사과를 입력 후 Enter 를 치면 True 가 출력됩니다. 부울 값은 다른 값과 마찬가지고 표현식에 사용됩니다. 그리고 위처럼 변수에 값을 저장할 수 있습니다.
이번에는 비교 연산자에 대해 알아보도록 하겠습니다.
== 같음(Equal to)
!= 같지 않음(Not equal to)
< 보다 작음(Less than)
> 보다 큼(Greater than)
<= 작거나 같음(Less than or equal to)
크거나 같음(Greater than or equal
>=
to)
비교 연산자는 위와 같은 연산자로 구성되어 있습니다. 이 비교 연산자를 통해서 부울 값(참과 거짓)을 판별하는 데 사용됩 니다.
그러면 실제 예를 들어 보도록 하겠습니다.
>>> 10 == 10 True >>> 10 == 20 False >>> 10 != 10 False >>> 10 != 20 True >>> '파이썬' == '파이썬' True >>>
'Python' == 'python' False >>> 'Python' != 'basic' True >>> True == True True >>> 10 < 20 True >>> 10 > 20 False >>> Age = 20 >>> Age <= 20 True >>> Age = 30 >>> Age >= 30 True >>>
위의 내용은 조금 내용이 많은 것 같긴 하지만 비교 연산자를 이용하여 참과 거짓을 판별하고 있다는 것을 알 수 있습니다. 비교 연산자를 사용할 때 처음 프로그래밍을 접하는 분들이 헷갈려 하는 부분이 == 연산자 입니다. 등호가 두개 들어가 있 는 연산자로 = 연산자와는 다른 기능을 하는 데 유의하셔야 합니다.
== : 두 값이 서로 같은 지를 검사하는 연산자입니다.
= : 할당 연산자로써 오른쪽의 값을 왼쪽의 변수에 넣은 역할을 합니다. 두 연산자의 쓰임새에 혼동이 없으시길 바랍니다.
이번에는 부울 연산자끼리의 비교에 대해 알아보도록 하겠습니다.
>>> True and True True >>> True and False False >>> True or False True >>> True or True True >>> False or False False >>> not True False >>> not not True True >>>
위의 내용이 부울 연산자끼리의 비교 방법입니다.
중학교때인가? 수학 시간에 논리 문제에서 참, 거짓 판별하는 문제에 대해서 배워 보셨을 겁니다. 둘 다 참이면 참, 둘 중 하나가 참이면 거짓 등 이런 논리 문제에서 다루었던 참 거짓 문제와 동일하게 생각하시면 됩니다. and 의 연산은 양쪽 다 만족을 해야만 하고, or 연산은 양쪽 중 하나만 만족해도 되는 결과를 나타내게 됩니다. 그리고 not 연산자는 참, 거짓을 반대로 만드는 연산자입니다.
그러면 실제 숫자를 이용한 부울 연산자의 사용법을 알아보도록 하겠습니다.
>>> (1 < 2) and (3 < 4) True >>> (1 < 2) and (4 < 3) False >>> (1 == 2) or (3 == 3) True >>> 2 + 2 == 4 and not
2 + 2 == 5 True >>>
특별한 내용은 없습니다. and 연산자의 경우 양쪽 다 참일 경우에만 참, or 연산자는 둘 중 하나만 참이어도 참이 되고, 양 쪽 다 거짓일 경우는 거짓을 출력한다고 보시면 됩니다.
그러면 구체적으로 부울값을 이용하여 흐름 제어를 하는 데는 어떤 방법을 사용할까요? 위와 같이 숫자를 비교하여 출력 하는 표현식을 이용하여 사용할 수도 있지만, 맨 처음에 언급했듯이 조건문을 이용하여 부울 연산을 하는데 주로 사용하게 됩니다.
if 조건문
if 조건문: 실행되는 문1 실행되는 문2 ... else: 실행되는 문3 실행되는 문4 ....
기본적인 조건문의 사용법은 위와 같습니다. if 조건문을 통해서 조건을 테스트 한 다음, 조건문이 참이면 실행되는 문1,2 와 조건문이 거짓이면 실행되는 문3,4 가 사용되게 됩니다.
필자가 파이썬을 사용하면서 가장 혼란스러웠던 부분이 조건문 바로 아래의 들여쓰기 사용 부분이었습니다. 파이썬에서 는 조건문의 블럭을 만들었으면 그 이후의 문장들은 모두 들여쓰기를 해야 하는 데 이 들여쓰기가 간격이 똑같아야 합니 다. 들여쓰기를 처음에 3칸을 했다면 이후의 들여쓰기는 모두 3칸으로 맞추어 주어야 합니다. 이 부분 때문에 지금도 구글 링을 하다보면 이런 에러 때문에 하소연하는 프로그래머들을 심심치 않게 보게 됩니다. 여하튼 이 들여쓰기의 간격을 똑같 이 맞추어야 하는 것은 다른 프로그래밍 언어에서는 없는 부분이기 때문에 다른 언어를 먼저 다루었다가 파이썬을 접한 사 람들은 더욱 더 혼란스럽게 생각하게 되죠. 파이썬에서 이렇게 들여쓰기 간격을 맞추어야 하는 이유는 아마도 조건문의 시
작을 콜론(:)을 이용해서 알려주기 때문에 코드 블럭 {} 을 이용해서 조건문을 감싸는 다른 언어와 다른 방식으로 처리해 주 어야 하기 때문인 것으로 보입니다.
그러면 조건문의 예를 들어보도록 하겠습니다.
Condition = '비가 옴' if Condition == '비가 옴': print('집에 있는다') else: print('외출한다')
파이썬을 실행시키고 쉘모드가 아닌 편집모드를 실행합니다. 편집모드창에서 위와 같이 입력합니다. 파일로 저장을 한 후 에 F5 키를 누릅니다. 그러면 쉘모드창에 "집에 있는다" 가 출력되게 됩니다.
위와 같이 조건이 참과 거짓으로만 판별되는 조건문은 if... else 만 사용하여 조건문을 실행하면 됩니다. 하지만 여러개의 조건을 검사해야 하는 경우는 어떻게 할까요? 이 경우는 elif 를 사용해야 합니다.
if 조건문: 실행되는 문1 elif 조건문: 실행되는 문2 elif 조건문: 실행되는 문3 elif 조건문: 실행되는 문4 else: 실행되는 문 5
여러 조건을 검사해야 하는 경우는 위와 같이 elif 를 사용하며 elif의 사용 갯수에는 제한이 없습니다. 마지막으로 else 모 든 조건이 다 충족되지 않을 경우 수행되는 문입니다.
실제 사용 예를 들어보도록 하겠습니다.
성적 = 75 if 성적 >= 90: print('A') elif 성적 >= 80: print('B') elif 성적 >= 70: print('C') elif 성적 >= 60: print('D') else: print('F')
파이썬 편집모드에서 위와 같이 입력 후에 저장을 합니다. F5 키를 눌러서 실행을 시키면 C 라는 출력결과가 나타나게 됩 니다.
if 조건문을 이용하여 부울 값을 판단하는 경우에 대한 설명은 여기까지 하도록 하고 다음에는 반복문을 이용한 조건 검색 에 대해 알아보도록 하겠습니다.
'Python' 카테고리의 다른 글
파이썬(Python) 쉬어가는 페이지 (1) | 2024.11.27 |
---|---|
파이썬 흐름제어 02 (1) | 2024.11.26 |
파이썬(Python) 기본문법 03 (0) | 2024.11.24 |
파이썬(Python) 기본문법 02 (1) | 2024.11.22 |
파이썬(Python) 기본 문법 01 (0) | 2024.11.21 |