프로그램을 작성할 때 항상 실행시키는게 아닌 조건에 따라
실행시켜야하는 기능들을 만들어야하는 경우가 있다.
이때 사용하는 것이 조건문이다.
그리고 프로그램은 위에서 아래로 진행되는데 제어문을 사용하면 조금씩 바꿀 수 있다.
if문은 조건을 걸고 이 조건의 결과값이 True or False이냐를 통해 코드를 실행시킨다. (프로그램의 진행을 제어한다.)
if문의 사용형식은 아래통해 설명하겠다.
if는 키워드
assignment_expression은 조건
:은 제어문의 범위 지정
suite는 실행코드들을 뜻한다.
if 키워드로 if문임을 알렸고 (x>0)이라는 조건을 걸고 실행코드를 적어주었다.
조건식이 참을 반환해 양수입니다.가 출력되었다. 실행은 잘 되었지만 하나 유의할 점이 있다.
여기서 if문의 제어범위는 3번째 줄까지라는 것이다.제어 범위가 적으면 적을 수 있는 코드가 많지 않다. 만약 계속해서 적으면 3번줄만 옆으로 엄청 길어질 것이다. 이때 편의와 가독성을 위해 들여쓰기(indentation)를 사용해 제어 범위를 늘려준다.
: 아래에 들여쓰기된 문장들은 모두 제어 범위로 포함된다. 보통 들여쓰기를 통한 방식으로 많이 사용하고
파이썬은 들여쓰기(indentation)을 통해 범위를 표시하기 때문에 들여쓰기를 꼭 숙지해야한다.
다음은 if의 짝궁 else에 대해 알아보겠다. else 또한 키워드이다.
if가 어떠한 조건일 때 ~해라 라고 한다면
else는 if의 조건이 맞지 않을 때 ~해라 라고 한다. 그래서 else는 독립적으로 쓰일 수 없고 if와 else는 서로 한쌍을 이룬다. 여담으로 else는 위쪽에서 가장 가까이 있는 if와 짝이된다.
아래의 예시를 통해 알아보겠다.
if와 else가 짝이되었다. else는 짝이된 if와 같은 라인을 맞춰주면 된다. (들여쓰기 x)
else에 짝이 없으면 오류가 뜬다.
여기서 0을 입력했을때 음수입니다.가 출력됐는데 이는 if문의 조건 (x>0)에서 거짓이 나왔기 때문이다.
if (조건) -> 참 -> 4번 실행
if (조건) -> 거짓 -> 6번 실행
이와같이 if와 else를 사용하면 원하는 값을 선별해 낼 수 있다.
만약 이때 더 많은 조건들을 걸수록 자세한 값들이 나온다.
더, 더, 더 자세한 값을 선별하고 싶을 때는 if문을 중복하여 사용할 수 있다.
아래의 예제를 통해 알려주겠다. 참고로 선으로 if~else 짝을 표현했다.
여기서 10번 줄이 실행되기 위해선 x>0이 참, ㅌ>=0이 참, 그리고 x%5==0도 참 이여야 한다.
if 문의 중첩은 아래의 구조를 띄고있다.
if 조건 1: 조건1이 참 일때 실행문장
if 조건 2 : 조건 1이 참이고 조건2도 참일 때 실행문장
if 조건 3 : 조건 1,2 가 참이고 조건 3도 참 때 실행문장
다음으로는 elif에 대해 알아볼 것이다.
elif는 사실 else와 if가 합쳐진 것이다. elif는 else if와 같다.
else는 위에 있는 if와 짝을 이룬다고 했다. 그런데 왜 뒤에 있는 if와 합쳐진 것일까? 이는 사용자의 편의를 위해서 추가된 기능이다.
elif의 사용 형식에 대해 말해보자면 아래와 같다.
앞의 조건이 거짓일 때 (else) + 조건 추가(if)
if 조건1 : 조건1이 참때 실행문장
elif 조건2 : 조건1이 거짓이며, 조건2가 참일 때 실행문장
elif 조건3 : 조건 1,2이 거짓이며, 조건3이 참일 때 실행문장
. . .
else : 위의 모든 조건이 거짓일 때 실행문장
아래의 예제를 통해 알아보겠다. 아래의 예제에도 if~else의 짝을 표현했다.
elif는 '위의 조건들이 모두 거짓일 때 내차례다'라고 생각하면 된다.
마지막으로 하나만 더 보고 마무리 하겠다.
8번줄에 elif 형식을 사용하려다 보니까 '10보다 작습니다' 문구 출력을 삭제해야 했다.
이런경우도 있으니 if~else와 elif를 유동적이게 사용하면 되겠다.
'Python > Python 기초' 카테고리의 다른 글
[Python] 반복문 2 (for, in, range) (0) | 2022.03.03 |
---|---|
[Python] 반복문(while) (0) | 2022.03.02 |
[Python] 연산자 2 (논리, 비트, 멤버쉽, 식별) (0) | 2022.03.01 |
[Python] 연산자 (산술, 비교, 대입) (0) | 2022.02.27 |
[Python] 입출력 함수(input 함수) (0) | 2022.02.25 |