티스토리 뷰

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
2

3
X
4

5
6

X

7
8

9
X
10

>>>

[%]는 나머지를 구하는 연산자 이다.

 

 

 

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
a = 1
while total <= 50:    #50 이하일 때 반복
    total = total + a
    a = a + 1
print(total)

 

total = 0
a = 1
while True:    #무한반복
    total = total + a
    a = a + 1
    if total > 50:
        break    #50을 넘으면 반복을 종료한다
print(total)

 

 

 

【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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함