ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 파이썬 문장구조 요약정리1 (If, while)
    파이썬 2017. 11. 18. 23:08

    if문 (if, else)


    >>> money = 1 >>> if money: ... print("택시를 타고 가라") ... else: ... print("걸어 가라") ... 택시를 타고 가라


    조건문을 테스트해서 참이면 if문 바로 다음의 문장(if 블록)들을 수행하고, 조건문이 거짓이면 else문 다음 의 문장(else 블록)들을 수행하게 된다. 그러므로 else문은 if문 없이 독립적으로 사용할 수 없다.

    if문을 만들 때는 if 조건문: 바로 아래 문장부터 if문에 속하는 모든 문장에 들여쓰기(indentation)를 해주어야 한다. 



    [조건문 다음에 콜론(:)을 잊지 말자!]


     자료형

    참 

    거짓 

     숫자

    0 제외한 숫자 

     문자열

    "abc"

    "" 

     리스트

    [1,2,3] 

    [] 

     튜플

    (1,2,3) 

    () 

     딕셔너리

    {"a":"b"} 

    {} 



    비교연산자

    x < y

    x > y

    x == y

    x != y (같지 않다)

    x >= y

    x <= y



    >>> money = 2000 >>> if money >= 3000: ... print("택시를 타고 가라") ... else: ... print("걸어가라") ... 걸어가라



    x or y

    x and y

    not x (x가 거짓이면 참)


    >>> money = 2000 >>> card = 1 >>> if money >= 3000 or card: ... print("택시를 타고 가라") ... else: ... print("걸어가라") ... 택시를 타고 가라



    x in s, x not in s


    >>> 1 in [1, 2, 3] True >>> 1 not in [1, 2, 3] False


    >>> pocket = ['paper', 'cellphone', 'money'] >>> if 'money' in pocket: ... print("택시를 타고 가라") ... else: ... print("걸어가라") ... 택시를 타고 가라




    [조건문에서 아무 일도 하지 않게 설정하고 싶다면?]


    >>> pocket = ['paper', 'money', 'cellphone'] >>> if 'money' in pocket: ... pass ... else: ... print("카드를 꺼내라") ...



    다양한 조건을 판단하는 elif

    "주머니에 돈이 있으면 택시를 타고, 주머니에 돈은 없지만 카드가 있으면 택시를 타고, 돈도 없고 카드도 없으면 걸어 가라"


    elif는 개수에 제한 없이 사용할 수 있다.


    >>> pocket = ['paper', 'cellphone'] >>> card = 1 >>> if 'money' in pocket: ... print("택시를 타고가라") ... elif card: ... print("택시를 타고가라") ... else: ... print("걸어가라") ... 택시를 타고가라



    while문의 기본 구조

    반복해서 문장을 수행해야 할 경우 while문을 사용한다. 그래서 while문을 반복문이라고도 부른다.

    while문은 조건문이 참인 동안에 while문 아래에 속하는 문장들이 반복해서 수행된다.

    "열 번 찍어 안 넘어 가는 나무 없다" 라는 속담을 파이썬 프로그램으로 만든다면 다음과 같이 될 것이다.

    >>> treeHit = 0 >>> while treeHit < 10: ... treeHit = treeHit +1 ... print("나무를 %d번 찍었습니다." % treeHit) ... if treeHit == 10: ... print("나무 넘어갑니다.") ... 나무를 1번 찍었습니다. 나무를 2번 찍었습니다. 나무를 3번 찍었습니다. 나무를 4번 찍었습니다. 나무를 5번 찍었습니다. 나무를 6번 찍었습니다. 나무를 7번 찍었습니다. 나무를 8번 찍었습니다. 나무를 9번 찍었습니다. 나무를 10번 찍었습니다. 나무 넘어갑니다.

    (※ treeHit = treeHit + 1 은 프로그래밍을 할 때 매우 자주 사용하는 기법이다. treeHit의 값을 1만큼씩 증가시킬 목적으로 사용되며, treeHit +=1 처럼 사용되기도 한다.)


    while문 강제로 빠져나가기

    만약 커피가 떨어졌다면 판매를 중단하고 "판매 중지"라는 문구를 사용자에게 보여주어야 한다. 이렇게 판매를 강제로 멈추게 하는 것이 바로 break문이다.


    >>> coffee = 10 >>> money = 300 >>> while money: ... print("돈을 받았으니 커피를 줍니다.") ... coffee = coffee -1 ... print("남은 커피의 양은 %d개입니다." % coffee) ... if not coffee: ... print("커피가 다 떨어졌습니다. 판매를 중지합니다.") ... break ...


    break문 이용해 자판기 작동 과정 만들기

    # coffee.py coffee = 10 while True: money = int(input("돈을 넣어 주세요: ")) if money == 300: print("커피를 줍니다.") coffee = coffee -1 elif money > 300: print("거스름돈 %d를 주고 커피를 줍니다." % (money -300)) coffee = coffee -1 else: print("돈을 다시 돌려주고 커피를 주지 않습니다.") print("남은 커피의 양은 %d개 입니다." % coffee) if not coffee: print("커피가 다 떨어졌습니다. 판매를 중지 합니다.") break



    조건에 맞지 않는 경우 맨 처음으로 돌아가기


    while문을 빠져나가지 않고 while문의 맨 처음(조건문)으로 다시 돌아가게 만들고 싶은 경우가 생기게 된다. 이때 사용하는 것이 바로 continue문이다.


    >>> a = 0 >>> while a < 10: ... a = a+1 ... if a % 2 == 0: continue ... print(a)


    무한 루프

    이번에는 무한 루프(Loop)에 대해서 알아보자. 무한 루프란 무한히 반복한다는 의미이다. 우리가 사용하는 일반적인 프로그램 중에서 무한 루프의 개념을 사용하지 않는 프로그램은 거의 없다. 그만큼 자주 사용된다는 뜻이다.


    >>> while True: ... print("Ctrl+C를 눌러야 while문을 빠져나갈 수 있습니다.") ... Ctrl+C를 눌러야 while문을 빠져나갈 수 있습니다. Ctrl+C를 눌러야 while문을 빠져나갈 수 있습니다. Ctrl+C를 눌러야 while문을 빠져나갈 수 있습니다. ....