Language/Python [Python] 단축 평가/while/for/break/continue/else/class
  • 728x90
    반응형

     

     

     

    Python 기초


     

     

     

    목차

       

       

       

      단축 평가

      📌 a가 0인 경우 조건식 'a & 10/a' 는 거짓

      • 10 / a에 의하여 ZeroDivisionError 가 발생한다.

       

       

      💡 단축 평가란?

      • 조건식 전체를 판단하지 않고 순차적으로 진행하다 식 전체가 자명한 경우, 더 이상 수식을 평가하지 않는 방법

       

      'and'와 'or'는 단축 평가로 수행되도록 보장

      • x and y : x가 False인 경우 y값은 평가하지 않음
      • x or y : x가 True인 경우 y값은 평가하지 않음

       

       

      단축평가의 장점은 조건식의 결과가 결정되는 시점 이후로 추가적인 판별 연산을 수행하지 않기 때문에 속도가 향상 되고, Run time error 발생을 try ~ except 구문이 아닌 논리식으로 사전에 차단 가능하다.

       

       

       

       

      while 문

       

      📌 조건식이 참(True)인 동안 내부 구문을 반복 수행

      • 조건식은 구문이 수행되기 이전에 우선 평가
      • 구문을 모두 수행 이후 다시 조건식을 재평가
      • 조건식이 거짓(False)이면 while문 구조를 벗어남

       

       

       

       

      for 문

       

      📌 시퀀스형 객체를 순차적으로 순회

      • '시퀀스형 객체 S'의 각 아이템을 '아이템 I'에 할당
      • 할당된 아이템 I를 가지고 구문을 수행
      • 모든 아이템을 순회하거나 break을 만나면 for문이 종료

       

       

      📌 for 문에서 사용할 수 있는 자료

      • 문자열, 리스트, 튜플, 사전
      • 이터레이터(iterator), 제너레이터 객체

       

       

      반복문은 2개 이상 중첩해서 사용 가능하다.

       

       

       

       

       

      break

      📌 break 을 만나면 반복문 내부 블록을 벗어남

       

       

       

       

       

      continue

      📌 continue 이후 반복문 내부 블록을 수해하지 않고, 다음 아이템을 선택하여 내부 블록의 시작 지점으로 이동

       

       

       

       

       

      else

      📌 반복문 수행도중 break로 인하여 중간에 종료되지 않고 끝까지 수행되었을 때, else 블록이 수행

      • else 블록이 수행되는 경우

       

       

      • else 블록이 수행되지 않는 경우

       

       

       

       

      리스트 내장

      [<표현식> for <아이템> in <시퀀스 객체> (if <조건식>)]

      • 기존 시퀀스 객체를 이용하여 추가적인 연산을 통하여 새로운 리스트 객체를 생성

       

      [<표현식> for <아이템> in <시퀀스 객체> (if <조건식>)]

      • 조건식을 이용하여 원본 객체에서 조건을 만족하는 아이템만 선별

       

      원본 리스트가 2개인 경우

       

       

       

       

      제어문 관련 유용 함수

      filter(<function>|None, 시퀀스 객체)

      • 함수의 결과 값이 참인 시퀀스 객체의 이터레이터를 반환
      • None이 오는 경우 필터링하지 않음

       

       

      range(['시작값'], ['종료값'],['증가값'])

      • 수열을 순회하는 이터레이터 객체를 반환
      • 시작값과 증가값은 생략 가능하며, 이때는 각 0, 1 이 할당

       

       

      map(<function>, 시퀀스 객체, ...)

      • 시퀀스 객체를 순회하며 function의 연산을 수행
      • 함수의 인자수만큼 시퀀스 객체를 전달

       

       

       

       

       

      클래스란 ?

      📌 데이터와 데이터를 변형하는 함수를 같은 공간으로 작성.

      • 메서드(Method)
      • 인스턴스(Instance)
      • 정보 은닉(Information Hiding)
      • 추상화(Abstraction)
        • 부모 클래스
        • 자식 클래스

       

       

       

      클래스 기본

      클래스와 인스턴스

       

      클래스와 인스턴스 이름 공간

       

       

      이름 공간

      검색 순서

      • 인스턴스 객체 영역 → 클래스 객체 영역 → 전역영역

      🔔 예)

       

      클래스와 인스턴스에 멤버 데이터 추가.

       

       

       

       

       

      클래스와 인스턴스 관계

      isinstance(인스턴스 객체, 클래스 객체)

      • 인스턴스 객체가 어떤 클래스로부터 생성되었는지 확인
      • 불린 형태로 결과 반환

       

       

       

       

      생성자와 소멸자

      🎯 생성자

      • 생성시 초기화 작업을 수행
      • 인스턴스 객체가 생성될 때 자동으로 호출
      • __init__()

       

      🎯 소멸자

      • 소멸시 종료 작업을 수행
      • 인스턴스 객체의 참조 카운터가 '0'이 될 때 호출
      • __del__()

       

       

       

       

      메서드 확장

      🎯 정적(static) 메서드

      • 인스터스 객체를 통하지 않고 클래스를 통해 직접 호출할 수 있는 메소드 (인스턴스 객체를 참조하는 self 인자가 필요하지 않음)
      • 형식 (<호출할 메소드 이름> = staticmethodd(클래스내 정의한 메소드 이름))

       

      🎯 클래스(class) 메서드

      • 클래스 영역으 데이터에 직접 접근할 수 있는 메소드 (암시적으로 첫 인자로 클래스 객체가 전달)
      • 형식(<호출할 메소드 이름> = classmethod(클래스내 정의한 메소드 이름))

       

       

      연산자 중복

      💡 연산자 중복이란 ?

      • 사용자 정의 객체에서 필요한 연산자를 내장 타입과 형태와 동작이 유사하도록 재정의
      • 연산자 중복을 위하여 두 개의 밑줄 문자가 앞뒤로 있는 메소드를 미리 정의함

       

      수치 연산자

       

      💡 상속이란 ?

      • 부모 클래스의 모든 속성(데이터, 메소드)를 자식 클래스로 물려줌
      • 클래스의 공통된 속성을 부모 클래스에 정의
      • 하위 클래스에서는 특화된 메소드와 데이터를 정의

      장점

      • 각 클래스마다 동일한 코드가 작성되는 것을 방지
      • 부모 클래스에 공통된 속성을 두어 코드의 유지보수가 용이
      • 각 개별 클래스에 특화된 기능을 공통된 인터페이스로 접근 가능

       

       

      클래스 간의 관계 확인

      • 상속 관계인 두 클래스 간의 관계를 확인 (issubclass (자식 클래스, 부모 클래스))

       

      다중 상속

      • 2개 이상의 클래스를 상속받는 경우
      • 두 클래스의 모든 속성(변수와 메소드)을 전달 받음

       

      🎯 클래스 상속과 이름 공간

      인스턴스 객체 영역→클래스 객체간 상속을 통한 영역(자식 클래스 영역 → 부모 클래스 영역) → 전역 영역

       

       

       

       

       

       

       

      728x90
      반응형
    상단으로