본문 바로가기
Python

파이썬 흐름제어 01

by eloyb 2024. 11. 25.
반응형

이번에 다룰 주제는 파이썬에서 제어구문을 생성하는 방법입니다. 흐름 제어라고 하면 조금 어려운 개념이라고 생각할 수 있지만, 사실 전혀 어려운 내용은 아니라고 생각합니다. 비가 안 오면 외출을 한다, 비가 오면 방콕을 한다. 국어 점수가 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