코딩에 있어 가장 기본적인 문법 중 하나로 언어 마다 조금씩 사용법이 다르기 때문에 그 사용 방법에 대해 잘 이해하고 있어야 한다.
1. if 구문 기본 사용법
if 조건문1: 실행문1-1 실행문1-2 .... elif 조건문2: 실행문2-1 실행문2-2 .... else: 실행문 3-1 실행문 3-2 ...
주의해야할 점
if, elif, else 구문 제일 마지막에는 : (콜론)을 붙여주어야 한다.
실행문 작성시에는 들여쓰기(indent)를 꼭 해야한다.
일상 생활에서의 예와 code로서 if 문을 비교해 보면 다음과 같다.
사과가 3개 있다면 배를 3개 더 산다. |
>>> apple = 3 >>> if apple == 3: ... pear = 3 ... print("Buy pear 3 more.") ... Buy pear 3 more. |
길이 막힌다면 지하철을 탄다. |
>>> currentRoad = "Heavy Traffic" >>> if currentRoad == "Heavy Traffic": ... print("Take a subway.") ... Take a subway. |
1-1. 한 줄 (One line) 조건문의 특별한 사용
조건에 따라 처리해야 할 구문이 많다면 위에 언급한 기본 조건문의 구조를 사용하면된다. 하지만 단순히 조건에 따른 할당과 같이 조건에 따라 처리해야 할 구문이 한 줄이라면 다음과 같은 구문의 조건문을 사용해 보는 것도 고려해 볼만하다.
Variable = value1 if 조건문 else value2
조건문이 True 일 경우 value1 이 Variable에 할당되고, 아니라면 value2 가 Variable에 할당된다.
[일반 조건문 사용하여 변수값 할당시]
>>> cond = "Sample" >>> if cond == "Sample": ... simple = True ... else: ... simple = False ... >>> print(simple) True
[한 줄 조건문 사용하여 변수값 할당시]
>>> cond = "Sample" >>> simple = True if cond == "Sample" else False >>> print(simple) True
2. 조건 type에 따른 if 구문의 사용
python 변수에는 type이 있고, 해당 type 별로 if 구문을 사용하는 방법에 대해 알아보고자 한다.
- if 구문에서 boolean 조건
- if 구문에서 숫자 조건
- if 구문에서 문자열 조건
2-1. if 구문에서 boolean 조건
사실 boolean을 비교할 필요는 없다. boolean 자체가 true, false이기 때문에 비교 없이 if 구문에서 바로 사용 될 수 있기 때문이다. 그러함에도 가독성이나 명시적으로 표현하기 위해 사용하는 경우가 있을 수 있음으로 그 사용법을 살펴보면 다음과 같다.
boolean 비교 구문 예 :
if variable == True:
if variable != True:
if variable is True:
if variable is not True:
if variable:
if not variable:
>>> a=True >>> if a == True: ... print "a is True" ... a is True >>> >>> if a is True: ... print "a is True" ... a is True >>> >>> if a: ... print "a is True" ... a is True >>>
>>> a=False >>> if a != True: ... print "a is False" ... a is False >>> >>> if a is not True: ... print "a is False" ... a is False >>> >>> if not a: ... print "a is False" ... a is False >>>
2-2. if 구문에서 숫자 조건
숫자의 비교는 if 문에서 가장 많이 사용하는 조건이 아닐까 한다.
[Python - 변수 할당의 개념] 에서도 언급하긴 하였지만 object의 주소 역할을 하는 id를 비교할 때는 "is"를 사용하고, 값을 비교할 때는 "=="를 사용해야 한다. 좀 더 자세한 이해가 필요하다면 [Python - 변수 할당의 개념] 를 읽어보자.숫자 비교 구문 예
if variable < 10:
if variable > 10:
if variable == 10:
if variable <= 10:
if variable >= 10:
if variable != 10:
2-3. if 구문에서 문자열 조건
문자열(String)의 비교는 언어에 따라 사뭇 다르곤 한다. 따라서 python에서 사용되는 문자열의 비교 방법에 대해 잘 알고 다른 언어와 어떤 차이점이 있는지 알고 있어야 사용이 가능하다.
문자열 비교 구문 예 :
if variable == "String":
if variable != "String":
if variable is "String":
if variable is not "String":
if variable :
if not variable :
if variable == "":
if "String" in variable:
if "String" not in variable:
아래의 실제 실행 결과를 보면 알겠지만 boolean 비교와 크게 다르지 않다. 다만 단순 boolean 비교와 다른 것으로 인지하고 있어야 할 점이 있는데, 실제 문자열 값으로 어떤 것이라도 가지고 있다면 True로 인식되고, "" 로 아무것도 가지고 있지 않다면 False로 인식된다는 점이다.
>>> a="String" >>> if a == "String": ... print "OK" ... OK >>> >>> if a != "String": ... print "OK" ... >>> >>> if a is "String": ... print "OK" ... OK >>> >>> if a is not "String": ... print "OK" ... >>> >>> if a: ... print "OK" ... OK >>> >>> if not a: ... print "OK" ... >>>
>>> a="" >>> if a == "": ... print "OK" ... OK >>> >>> if a: ... print "OK" ... >>> >>> if not a: ... print "OK" ... OK >>>
>>> a = "abcdefghijklmn" >>> if "bcd" in a: ... print "OK" ... OK >>> if "xyz" in a: ... print "OK" ... else: ... print "NOK" ... NOK >>>
2-4. is 와 == 의 차이
앞서 언급한 조건문을 보면 is 로 그 동일함을 확인하는 경우가 있고, == 로 동일함을 확인하는 경우가 있었다. 그 차이는 다음과 같다.
is : 해당 object 의 값 뿐만 아니라 identity (memory address) 까지 같은지 확인
== : 해당 object 의 값이 같은지만 확인
>>> a = "String" >>> b = "String"
>>> if a == b: ... print("OK") ... OK >>> if a is b: ... print("OK") ... OK >>> id(a) 140040905899872 >>> id(b) 140040905899872
>>> if a == b: ... print("OK") ... OK >>> if a is b: ... print("OK") ... >>> id(a) 140040905899872 >>> id(b) 140040905899968
위와 같이 변수 a와 b에 같은 값을 넣었다고 하더라도 해당 변수가 저장된 memory address (identity) 가 같을 수도 있고, 다를 수도 있다. 따라서 단순히 값만 비교하는 경우라면 "==" 를 사용해서 비교해야 한다.
3. if 구문 관련 Error
SyntaxError: invalid syntax
발생 case 1> 비교 연산자가 아닌 할당을 하였을 경우
>>> if a = "test" File "", line 1 if a = "test" ^ SyntaxError: invalid syntax >>>
발생 case 2> if / elif / else 구문 라인 끝에 : (콜론)을 누락하였을 경우
>>> if a == "test" File "", line 1 if a == "test" ^ SyntaxError: invalid syntax >>>
'Language > Python' 카테고리의 다른 글
[02-1] Python - 변수 할당의 개념 (0) | 2016.08.08 |
---|---|
[02-3] Python - 문자열 (Strings) (0) | 2016.08.08 |
[02-2] Python - 숫자 (Numbers) (0) | 2016.08.07 |
[02-5] Python - 튜플 (tuple) (0) | 2016.08.07 |
pip 그리고 python library 설치. (0) | 2016.01.25 |
Ipython .. python 과 무엇이 다른가. (0) | 2015.09.14 |
Python Chart, Graph library (0) | 2015.09.11 |
python excel xls xlsx (0) | 2015.08.09 |