if 명령은 그 뒤에 오는 조건식의 참/거짓 여부에 따라 속한 블럭을 수행할지 말지를 결정하는 명령이다. 가장 기본 문법은 다음과 같다.


if 조건식:
   실행문1
   실행문2
   …


여기에서 조건식이 참(True)이면 실행문1, 실행문2 … 가 수행되고 그렇지 않으면 실행되지 않는다. 주의할 점은 if 문에 속한 모든 실행문은 들여쓰기가 같아야 한다는 것이다. 한 칸이라도 틀리면 문법 오류를 발생하게 된다. (보통 한 수준의 들여쓰기는 공백문자 4칸으로 한다.) 또한 조건식 뒤의 콜론(:)도 처음에는 빠뜨리기 쉬우니 조심하자.


 조건식에는 보통 관계연산자와 논리연산자가 사용된다.


[표 1] 조건식에서 사용되는 관계/논리 연산자들

분류

연산자들

관계연산자

==, !=, <, >, <=, >=, is, is not, in, not in

논리연산자

and, or, not


예를 들면 다음과 같다.


n = int(input("integer:"))
if n%2==0:
   print("even number!")

#실행:
integer:12
even number!


이 예는 입력 받은 정수가 짝수일 경우 화면에 ‘even number’라고 출력하고 홀수일 경우는 아무런 일도 하지 않는 것이다.


좀 더 일반적인 if 명령의 문법은 else 와 짝을 이루는 것이다.


if 조건식 :
   실행문1
   실행문2
   …
else :
   실행문3
   실행문4
   …


이 경우 조건식이 거짓이면 else 블럭(실행문 3, 실행문4…)을 수행하게 된다.


age = int(input("나이:"))
if age<30:
   print("청년")
else:
   print("중년")

#실행:
나이:44
중년


사용자의 나이 입력을 받아서 나이가 30 미만으면 ‘청년’, 30 이상이면 ‘중년’이라고 출력하는 간단한 예제이다.


 일반적인 if 명령의 구조는 다음과 같다.


if 조건식1 :
   실행문1
   ...
elif 조건식2
   실행문2
   …
elif 조건식3
   실행문3
   …
else :
   실행문n
   …


키워드 elif 는 else if 를 줄인 단어이다. 이 구조에서 조건식1이 참이라면 실행문1을 수행하고 if 블럭을 완전히 빠져나간다. 만약 조건문1이 거짓이라면 조건식2를 판별한다. 그래서 조건식2가 참이면 실행문2를 실행하고 if 블럭을 빠져나간다. 모든 조건이 거짓일 경우 else 문에 속한 실행문n이 실행된다.


s = 'hello'
if 'a' in s:
   print("'a' is contained")
elif 'b' in s:
   print("'b' is contained")
else:
   print("both 'a' and 'b' are not contained")

#실행결과:
both 'a' and 'b' are not contained


파이썬에는 C/C++/JAVA/C# 등에는 있는 switch - case 명령문이 없다. 따라서 비교적 많은 수의 다중 조건을 판단해야 할 경우에도 if - elif- else 문을 조합하여 구성해야 한다.


 가끔 조건문을 판단하고 참 거짓에 따라 행동을 정의 할 때 아무런 일도 하지 않도록 설정을 하고 싶을 때가 생기게 된다. 다음의 예를 보자.


"집에 돈이 있으면 가만히 있고 집에 돈이 없으면 노트북을 팔아라"


위의 예를 pass를 적용해서 구현해 보자.


>>> home = [‘money’, 'TV', 'radio', 'notebook']
>>> if 'money' in home:
...    pass
... else:
...    print("sell notebook.")


home이라는 리스트 안에 'money'라는 문자열이 있기 때문에 if 문 다음 문장인 pass가 수행되었고 아무 일도 수행하지 않는 것을 확인 할 수 있다.


위의 예를 보면 if문 다음의 수행할 문장이 한 줄이고 else문 다음에 수행할 문장도 한 줄이다. 이렇게 수행할 문장이 한 줄일 때 조금 더 간편한 방법이 있다. 위에서 알아본 pass를 사용한 예는 다음처럼 간략화할 수 있다.


>>> home = [‘money’, 'TV', 'radio', 'notebook']
>>> if 'money' in home: pass
... else:
...    print("sell notebook.")


if 문 다음의 수행할 문장을 ':'뒤에 바로 적어 주었다. else 문 역시 마찬가지이다. 이렇게 하는 이유는 때로는 이렇게 하는 것이 보기에 편하게 때문이다.



Posted by 살레시오
,