조건문

    a, b = 0, 1
   
    # if
    if a>b:
        print("a가 더 크다." )
       
    #if - else
    if a>b:
        print("a가 더 크다." )
    else:
        print("a가 더 크지 않다." )
      
    # if - elif - else
    if a>b:
        print("a가 더 크다." )
    elif a<b:
        print("a가 더 작다." )
    else:
        print("a와 b가 같다."

파이썬에서의 if문은 브레이스 {}를 사용하는 블록 구조 대신 들여 쓰기를 사용한다는 것과 elseif 대신 elif를 사용한다는 점 이외에는 타 프로그래밍 언어와 큰 차이점이 없다.




그러나, 파이썬에 switch - case 문은 없다. 이럴 수가! 꼭 if-else구문만으로도 얼마든지 구현 가능하다지만 그래도 switc구문이 없으니 뭔가 섭섭하다. 대신 다음과 같은 접근 방식을 사용할 수 있다. 
    
    choices = dict(
        one = 1, two = 2 , three = 3, four = 4
    )
    val = 'three'
    print(choices[val])
  
위 코드는 딕셔너리에 정의된 값이 아닌 경우 오류가 발생하는데, 이를 조금 더 다듬어 보자면,
    
    choices = dict(
        one = 1, two = 2 , three = 3, four = 4
    )
    val = 'five'
    print(choices.get(val, 'unknown'))
 



그리고 또, 삼항 조건 연산자(?:)도 없는 대신 if-else 문을 변칙적으로 사용한다.
    
    a, b = 0, 1
   
    # 통상적인 if-else문
    if a>b:
        result = "a가 더 크다."
    else:
        result = "a가 더 크지 않다."
       
    print (result)
 
  
    # 삼항 연산자를 대신하는 변칙적인 if-else문
    result = "a가 더 크다." if a>b else "a가 더 크지 않다."
    print (result)

위 코드에 등장하는 두 종류의 조건문은 그 의미가 서로 같다.


댓글

이 블로그의 인기 게시물

Project Euler - 3

메인 스크립트

예외 처리