Python.04

2020. 5. 18. 16:24
728x90

Python 제어문
제어문 : 프로그램 코드의 실행을 제어하는 용도로 사용되는 명령어들
일반적으로 조건문인 if문과 반복문인 while문과 for문이 제어문에 포함됩니다. 제어문은 거의 대부분의 프로그래밍 언어에서 공통적으로 사용되며
특정 조건이 맞을 경우 분기(branch)하거나 반복하는 형태를 갖추고 있습니다. 그럼 지금부터 Python의 제어문인 조건문과 반복문에 대해 알아보도록 하겠습니다.
이번 시간 학습내용을 통해 여러분은 Python의 제어문에 해당되는 조건문과 반복문의 종류와 특징을 알 수 있습니다. 그럼 학습 내용과 강사를 확인하고 본격적으로 학습을 시작해 볼까요?

 [ 조건문 (if) ] 

안녕하세요. 오늘은 Python의 조건문인 if문과 반복문인 while문과 for문에 대해 알아보겠습니다. 조건문은 들으시는 바와 같이 특정 상황, if에 해당하는 ‘만약에’라는 경우가 참이라면 만약에 해당하는 부분을 실행하고 거짓이면 거짓에 해당하는 부분을 실행하라는 뜻입니다. 그럼 조건문을 좀 더 쉽게 이해하기 위해 직접 코딩해 보겠습니다. ‘만약에 내가 돈이 있다면‘이라는 문장을 실행하면 어떻게 될까요? 바로 에러가 발생합니다. 이유는 트루가 되기 위해선 T가 대문자이어야 하기 때문이죠. 이러한 에러는 코딩을 하다 보면 자주 하게 되는 실수이니 주의하시길 바랍니다. 해브 머니가 트루라면 이프 해브 머니 트루 콜론을 입력합니다. 여기서 가장 중요한 부분이 바로 콜론으로 세미콜론이 아니라 콜론을 사용한다는 점입니다.

Colon 입력하고 엔터 치면 이에 따라오는 명령문을 실행하게 됩니다. 또한, 자동으로 indent (들여쓰기) 가 됩니다. 그리고 들여쓰기 된 명령문들만 실행합니다.

Ex.

have_money = True  # true에서 t가 대문자여야 한다는 점을 기억!!

if have_money :

             print(“eat something”)

else :

             print(“go home”)

if문은 인덴테이션, 즉 들여쓰기가 된 블록단위로 수행된다는 것을 보여주기 위한 예제입니다.

 

if구문은 이 외에도 어떻게 사용할 수 있을까요?

자료형에서 숫자0이 참인지 거짓인지 알아보기 위해 참이면 true를 거짓이라면 false를 출력하라는 조건문을 입력합니다. 그리고 엔터를 입력하면 false가 출력됩니다. 즉 숫자0은 거짓이라는 뜻입니다.

그러면 숫자 0 이외에 다른 것도 조건문을 사용해 확인하고 싶을 경우 매번 이렇게 4줄짜리 코드를 수행한다면 매우 번거로울 것입니다. Python에는 이처럼 반복적인 수행을 처리해 주는 기능이 있는데 바로 일반적인 프로그램에서 함수라고 부르는 것들입니다. Python의 함수는 뒤에 좀 더 자세히 배우겠지만 지금 간단하게 기능을 살펴보겠습니다.

Python에서 함수를 정의하려면 “ def 함수명(value) : “ 을 사용하면 됩니다. 여기선 이해하기 쉽도록 함수 function 을 줄여서 func을 함수명으로 정의하겠습니다. 함수를 사용할 때는 반드시 valuecolon을 붙여 입력해야 합니다. 여기서 콜론이 있다는 것은 즉 다음 줄부터 들여쓰기로 입력할 구문이 있다는 의미입니다. 바로 여기서부터 함수를 정의하는 코드를 입력하게 됩니다.

 

def func( value ):

             if value :

                           print(“True”)

             else :

                           print(“False”)

func(0) 을 입력하고 엔터 치면 False가 나옵니다.

func(1) 을 입력하고 엔터 치면 True가 나옵니다. 따라서 func 함수가 제대로 작동되는 것을 확인할 수 있습니다.


그럼 value 값으로 정수가 아닌 문자열을 넣어볼까요?

문자열이 들어갈 때엔 아무 내용이 없으면 False가 나오고 그 외엔 True가 출력됩니다.

func(abcdefg) 을 입력하고 엔터 치면 True가 나옵니다. , abcdef가 존재한다는 뜻입니다.

func(“”) 을 입력하고 엔터 치면 False가 나옵니다.

 

Python에서 많이 사용하는 리스트를 함수에 적용하면 true가 출력되며 문자열과 마찬가지로 내용이 없는 리스트, 즉 널 (null) 값을 넣으면 false로 처리됩니다.

func([a, b, c])  #True

func([])  #안에 아무 값이 없으므로False

 

이러한 규칙은 tupledictionary에도 적용됩니다.

func((1))  #True

func(())  # False

 

func({1})  #True

func({})  #False         


이렇게 함수구문을 사용하여 각 자료의 truefalse값을 확인할 수 있습니다.

 

if문 두 개를 사용해서 비교하는 기능도 사용할 수 있습니다.

 

Python에서 = 한 개를 사용할 경우에는 대입에 해당되므로, ‘같다라는 기능은 등호를 두 번 연달아 사용해야 합니다. 같지 않다

Python에서 사용하는 연산자 몇가지를 알려드리자면 아래와 같습니다 :

= : 대입

== : 같다

!= : 같지 않다

A > b : ab보다 크다

A < b : ab보다 작다

A >= b : ab보다 크거나 같다

A <= b : ab보다 작거나 같다

 

and 연산자 : 비교하는 값 두개 다 참 일때만 참

T and T  # True

T and F 

F and T 

F and F 

 

or 연산자 : 비교하는 값 두개 다 거짓 일때만 거짓

T and T 

T and F 

F and T 

F and F  # False

 

not 연산자 : 값을 반대로 바꿔줌

not T  #T(true)가 아닌 F(false)를 출력

 

in 연산자 : 값이 리스트/튜플/딕셔너리 등 안에 들어있는지를 확인시켜줌

Ex.

lst = [1, 2, 3]

1 in lst  #True

 

elif else if가 결함된 명령어입니다.

if문의 순서 : if -> else if (또는 elif) -> else

 


 

 [ 반복문(while, for) ] 

이번에는 반복문의 일종인 while문에 대해 알아보겠습니다.

while(조건) : 특정 조건이 만족되는 동안 해당 명령을 반복적으로 수행

 

Ex.

주머니에는 4만원이 있다. 이때 밥을 몇 차례 먹을 수 있을지 while문을 이용해 실행시켜보자.

 

money = 40000

count = 0

while(money > 0) :

    money -= 12000  #한 끼에 12000원 사용

print(“%d번 먹을 수 있어요!” % count ) 

    count += 1  # 회차가 반복될 때마다 1씩 증가됨

 

위의 코드를 실행시키면 while문을 반복하면서 12000원씩 차감하여 남은 돈이 0보다 작아지는 순간 while문을 더 이상 실행하지 않고 프로그램이 자동 종료됩니다. 따라서 4번까지 밥을 먹을 수 있다는 것을 확인할 수 있습니다.

 

이번에는 for문에 대해 알아보도록 하겠습니다. for (변수) in (범위):
(*
반복문 중에서는 주로 for문이 while문보다 많이 사용됩니다!)

 

Ex.

음식으로는 fish, shell, shrimp 를 먹었다고 해봅시다. for문을 사용하여 반복될 때마다 food 라는 리스트 안에 있는 값을 하나씩 빼오도록 명령합니다. 그리고 먹은 안주 종류를 출력하도록 합니다.

 

food = [‘fish’, ‘shell’, ‘shrimp’]

for i in food :

    print( “eating %s” % I )

 

위와 같이 명령하면

eating fish

eating shell

eating shrimp

라고 나옵니다.

 

이제 for문을 사용할 때 조심해야할 점은, 최초 변수 값을 초기화 해야한다는 점입니다.

total = 0  #최초 변수 값의 초기화

for i in range(1, 11) :  # i1부터 10까지 대입한다

    total += I  # 1+2=3, 3+3=6, … , 36+9=45, 45+10=55

    print total  # 1부터 10까지 더한 결과값. 55

 

이와 같은 for문을 실행시킨 후, 이어서 다른 for문을 만들었을 경우 total의 값을 초기화 시키지 않으면 초기값을 0이 아닌 55라고 인식하여 우리가 예상한 값이 나오지 않을 수 있습니다. 따라서 이런 실수를 방지하기 위해 항상 초기화 시키는 것을 잊지마세요!!

 


정리하기

-        조건문에 있어 자료형은 true false, 즉 참과 거짓으로 구분됩니다. 숫자의 경우 0을 제외한 모든 숫자는 참으로, 문자열의 경우 공백을 제외하면 참으로 구분됩니다.

-        반복문의 while문은 조건이 만족하는 동안 들여쓰기 된 문장을 계속 반복하라는 명령입니다.

-        for문도 while문과 동일한 기능을 하나, 일반적으로 while문보다 for문이 더 많이 사용됩니다.

728x90

'Python' 카테고리의 다른 글

Python.05  (0) 2020.05.18
python.03  (0) 2020.03.15
python.02  (0) 2020.03.11
python.01 (Intro)  (0) 2020.03.06

BELATED ARTICLES

more