homebody's blog

[Python] Python 기초 - 5(if, for) 본문

Python

[Python] Python 기초 - 5(if, for)

homebody 2019. 7. 2. 18:57
  1. 조건문(if)

    • 제어문(Control of Flow)은 크게 반복문과 조건문으로 나눌 수 있고, 이는 순서도(Flow chart)로 표현이 가능하다.

      • if문

        1. if 문은 반드시 일정한 참/거짓을 판단할 수 있는 조건식과 함께 사용이 되어야한다.
          if <조건식>:

        2. <조건식>이 참인 경우 : 이후의 문장을 수행한다.

        3. <조건식>이 거짓인 경우 else: 이후의 문장을 수행한다.

          • 파이썬에서는 반드시 들여쓰기를 유의해야한다. 파이썬에서는 코드 블록을 자바나 C언어의 {}와 달리 들여쓰기로 판단하기 때문이다. 들여쓰기는 맞춰 주기만 하면 되기 때문에 칸수는 상관이 없다.

          • PEP-8에서 권장하는 4spaces를 사용하는 것이 좋다.
            실습문제1 - 조건문 기초 활용

              # 조건문을 통해 변수 num의 값과 홀수/짝수 여부를 출력
              # 예시 출력)
              # 3
              # 홀수입니다.
            
              # Code
              num = int(input("점수를 입력하세요 : "))
              if num % 2 == 0:
                  print("짝수입니다.")
              else:
                  print("홀수입니다.")
        4. 복수 조건문

          • 2개 이상의 조건문을 활용할 경우 elif <조건식>:을 활용한다.
            실습문제2 - 조건식 2개 이상 활용

            # 조건문을 통해 변수 score에 따른 평점을 출력
            # 점수        등급
            # 90점 이상    A
            # 80점 이상    B
            # 70점 이상    C
            # 60점 이상    D
            # 50점 미만    F
            
            # Code
            score = int(input("점수를 입력하세요 : "))
            if score < 60:
              print("F")
            elif 60 <= score < 70:
              print("D")
            elif 70 <= score < 80:
              print("C")
            elif 80 <= score < 90:
              print("B")
            elif score >= 90:
              print("A")

            실습문제3 - 중첩 조건문 활용

            # 위의 실습문제 2코드를 활용하여 95점 이상이면, "참잘했어요"를 함께 출력
            # 예시 출력)
            # A
            # 참잘했어요
            
            # Code
            score = 96
            if score < 60:
                print("F")
            elif 60 <= score < 70:
                print("D")
            elif 70 <= score < 80:
                print("C")
            elif 80 <= score < 90:
                print("B")
            elif score >= 90:
                print("A")
                if score >= 95:
                    print("참잘했어요")
        5. 조건 표현식(Conditional Expression)

           true_value if <조건식> else false_value
           #보통 다른 언어에서 활용되는 삼항연산자와 동일하다.
           a=int(input())
           print("3임") if a==3 else print("3아님")
          
           num = int(input("숫자를 입력하세요 : "))
           value = num if num >= 0 else 0
           print(value)
          
           num = 2
           result = '홀수입니다.' if num % 2 else '짝수입니다.'
           print(result)
  2. 반복문(while, for)

    1. while문

      • while문은 조건식이 참(True)인 경우 반복적으로 코드를 실행한다.

      • while문 역시 <조건식>이후에 :이 반드시 필요하다.

      • 이후 오는 코드 블록은 4spaces로 들여쓰기를 해야 한다.

      • while 문은 종료조건을 반드시 설정해주어야 한다.

          a = 0
          while(a < 5):
              print(a)
              a += 1
          print("끝")
    2. for문

       for variable in sequence:
           code line1
           code line2
      • for문은 정해진 범위 내(sequence)에서 순차적으로 코드를 실행한다.

      • for문은 sequence를 순차적으로 variable에 값을 바인딩하며, 코드 블록을 시행한다.

      • 정해진 시퀀스 내에서의 반복 시 사용 -> '가지고 있는 모든 것을 꺼낸다'

      • dictionary도 들어갈 수 있지만, key값만 들어간다.

          for i in range(5):
              print(i)
          print("끝")

        실습문제

          # 반복문과 조건문만 활용하여 1~30까지 숫자 중에 홀수만 담긴 리스트 생성
          # 예시 출력)
          # [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29]
        
          # Code
          result = []
          for i in range (1, 31):
          if i % 2 == 1:
               result.append(i)
          print(result)

        index와 함께 for문 활용

        • enumerate()를 활용하면, 추가적인 변수를 활용할 수 있다.

            print(list(enumerate(["apple","banana"])))
          
            for i, food in enumerate(["짜장면", "초밥"]):
                print(i, food)
          
            for i, food in enumerate(["짜장면", "초밥"], 1):
                print(i, food)
    3. dictionary 반복문 활용

      • 기본적으로 dictionary를 for문을 시행시키면 다음과 같이 시행된다.

          classroom = {'teacher' : 'lim', 'student1' : 'hong', 'student2' : 'kim'}
          for member in classroom:
              print(member, classroom[member])
    4. dictionary에서 for 활용하는 4가지 방법

       # 0. dictionary (key 반복)
       for key in dict:
           print(key)
      
       # 1. key 반복
       for key in dict.keys():
           print(key)
      
       # 2. value 반복
       for val in dict.values():
           print(val)
      
       # 3. key와 value 반복
       for key, val in dict.items():
           print(key, val)
    5. break, continue, else

      • break

        • break문은 반복문을 종료하는 표현

           for i in range(10):
               if i != 0 :
                   break
               print(i)
      • continue

        • continue문은 continue 이후의 코드를 수행하지 않고 다음 요소를 선택해 반복을 계속 수행

            for i in range(10):
                if i % 2 == 0:
                    continue
                print(i)
      • else

        • else문은 끝까지 반복문을 시행한 이후에 실행 (break를 통해 중간에 종료되지 않은 경우만 실행)

            for i in range(10):    #break가 실행되지 않으면 for문이 끝날 때 else가 실행이 된다.
                if i == 10:
                    break
                print(i)
            else:
                print("break가 실행되지 않았습니다.")
          
            for i in range(10):    #break가 실행되면 for문이 끝날 때 else가 실행 되지 않는다.
                if == 0:
                    break
                print(i)
            else:
                print("break가 실행되지 않았습니다.")
Comments