티스토리 뷰
1. 조건 분기
(만약, 이럴 때는 이렇게 한다, 그렇지 않으면 이렇게 한다.)
Python에서는 if구문을 사용하여 조건 분기를 한다. 조건분기도 인덴트해서 기술한다.
if 조건문: 조건이 성립하고 있을 때 실행하는 문 else: 조건이 성립하지 않을 때 실행하는 문 |
[조건이 성립하지 않을 때 실행하는 문] 이 필요할 때는 else: 다음을 생략하여 기술한다.
if 조건문: 조건이 성립하고 있을 때 실행하는 문
예를 들어보자
#coding:utf-8
for a in range(1 , 5 + 1): if a <= 2: print("작군") else: print("크군") |
▼ |
작군 작군 크군 크군 크군 >>> |
a가 2이하일 때는 [작군]이 그렇지 않을때는 [크군]이 표시됨을 볼 수 있다.
2. 조건을 조합한다
지정할 수 있는 조건이 1개가 아닌 여러 개를 사용할 때가 있다.
조건을 여러개 사용해야할 때는 [and], [or], [not]과 같은 논리연산자를 사용해야 한다.
and |
2가지 조건 모두가 성립할 때 |
(a == 1) and (b == 2) |
a가 1 그리고 b가 2일 때 |
or |
2가지 조건 중 하나가 성립할 때 |
(a == 1) or (b == 2) |
a가 1 또는 b가 2일 때 |
not |
조건의 부정 |
not (a == 2) |
a가 2와 같지 않을 때 (a != 2로 쓰는 것과 같다.) |
【tip】 [and] 생략
여러개의 조건이 and로 연결되어 있을때 and를 생략 할수도 있다. 예를들어,
if (a >= 1) and (a <= 5): |
는 다음과 같이 기술할 수 있다.
if (1 <= a <= 5): |
단, 다음과 같이 쓰는것은 Python을 포함한 많은 프로그램 언어에서 허용되지 않는다.
if (1 <= a) and (a <= 5): ----- (x)
실제로 조건을 연결한 프로그램을 만들어 보자.
1부터 10까지 반복 실행하면서
- 2의 배수일 때는 [○]
- 3의 배수일 때는 [X]
- 2의 배수이고 3의 배수일 때는 [△]
# coding:utf-8
for a in range(1, 10 + 1): print(a) if a % 2 == 0: # 2의 배수 print("○") if a % 3 == 0: # 3의 배수 print("X") if (a % 2 == 0) and (a % 3 == 0): # 2와 3의 배수 print("△") |
▼ |
1 |
[%]는 나머지를 구하는 연산자 이다.
3. elif를 사용해 [아닐 때의 조건]을 늘어 놓는다.
우선 [아니다]일 때 조건을 지정해보자. 예를들어
1부터 100까지 반복 실행하면서
-12의 배수일 때는 [○]로 표시한다.
-12의 배수가 아니라 4의 배수일 때는 [△]로 표시한다.
-12의 배수도 4의 배수도 아닌 2의 배수일 때는 [X]로 표시한다.
-12의 배수도 4의 배수도 2의 배수도 아닐 때는 [☆]로 표시한다.
for a in range(1, 100 + 1): if (a % 12 == 0): #12의 배수일 때 print("○") else: if (a % 4 == 0): #12의 배수가 아니고 4의 배수일 때 print("△") else: if (a % 2 == 0): #12의 배수도 4의 배수도 아닌 2의 배수일 때 print("X") else: #아무것도 아닐 때 print("☆") |
이 프로그램은 if와 else가 매우 많아 한번 봐서는 어떤 처리를 하고 있는지 파악하기 힘들다.
그래서 Python에서는 [else]와 [if]를 합체한 [elif](그렇지 않을때는)라는 키워드를 이용하면 이해하기 쉽게 쓸 수 있다.
for a in range(1, 100 + 1): if (a % 12 == 0): #12의 배수일 때 print("○") elif (a % 4 == 0): #12의 배수가 아니고 4의 배수일 때 print("△") elif (a % 2 == 0): #12의 배수도 4의 배수도 아닌 2의 배수일 때 print("X") else: #아무것도 아닐 때 print("☆")
4. 조건이 성립할 때 반복을 종료한다.
if문을 사용한 조건 판정은 for나 while등의 반복구문과 자주 조합해 사용한다.
주로 [무한 반복하지만 특정 조건이 성립할 때는 반복을 종료] 하고자 할 때 사용한다.
이것은 구문 내의 [break]라는 명령이 실행되면 그 시점에서 반복을 멈추고, 반복의 다음줄로 이동시킨다.
10장 while 구문에서 [1+2+3+...]과 같은 계산을 하다가 50을 넘으면 그때의 답을 표시하는 프로그램을 만들었다.
이 프로그램을 break를 사용해 기술해보자.
total = 0 |
▶ |
total = 0 |
【tip】아무 것도 하지 않음을 나타내는 pass
if문에서 가끔 [조건이 성립되었을 때 아무 것도 실행해야 할 것이 없을 때]가 있다.
그럴 때 [조건이 성립될 때 실행하고자 하는 문]을 생략하게 되면 오류가 발생한다.
따라서 이런 경우에 Python에서는 [pass]를 기술하여 [아무것도 하지 않는 문]을 나타낸다.
if 조건식: #조건이 성립될 때 실행하고자 하는 문 생략 else: 조건이 성립하지 않았을 때 |
▶ |
if 조건식 pass #아무것도 하지 않는 문 else: 조건이 성립되지 않았을 때 |
출처: 파이썬 입문교실
'beginner > 파이썬 기초' 카테고리의 다른 글
13. 기능을 확장하는 모듈 (0) | 2019.01.11 |
---|---|
12. 함수를 사용한다 (0) | 2019.01.10 |
10. 반복 실행해보자② while구문 (0) | 2019.01.09 |
9. 반복 실행해보자① for구문 (0) | 2019.01.09 |
8. 변수를 사용해 보자 (0) | 2019.01.09 |