순열 : permutation ✔️ 순열이란 주어진 숫자 중 n개를 골라 순서를 고려해 나열한 경우의 수를 말한다 ✔️ 즉, 서로 다른 n 개 중 r 개를 골라 순서를 정해 나열하는 가짓수이다 ✔️ 그리고 순열은 ‘Permutation’의 첫 글자 P를 따서 nPr로 표시한다 예를 들어 조별 활동을 위해 같은 조가 된 A, B, C 세 명의 학생 중 조장과 부조장을 뽑으려 한다 조장과 부조장을 뽑는 데 모두 몇 가지 경우의 수가 있을까? A, B 두 사람을 뽑는다면 순서에 따라 (A, B)가 될 수도 있고 (B, A)가 될 수도 있다 (A, B)에서는 A는 조장, B가 부조장의 역할을 맡는다. 반면 (B, A)에서는 B가 조장의 역할을, A가 부조장의 역할을 맡는다. 둘은 엄연히 다르다. 이를 통해 순열..
📌 파이썬 개발 도구 👉 파이참 (Pycharm) 설치하기 ✔ 프로그래밍 개발 툴로 유명한 제트브레인즈(JetBrains)사에서 개발한 프로그램. ✔ 유료, 무료 파이썬 개발자들이 애용하며, 웹, 게임, 영상 처리 등 다양한 프로그램을 개발 할 수 있다. ✔ 파이참에서 프로젝트를 생성하면 가상 환경이 구축된다. (venv 폴더) 1. 아래 URL로 들어가서 Community를 설치하자. Download PyCharm: Python IDE for Professional Developers by JetBrains Download the latest version of PyCharm for Windows, macOS or Linux. www.jetbrains.com 2. 모두 check하고 Next → Ins..
📌 파이썬 개발 도구 👉 기본 개발 툴 (IDLE) Welcome to Python.org The official home of the Python Programming Language www.python.org ✔ 파이썬 공식 사이트에서 제공하는 파이썬 프로그램 기본 개발 툴. ✔ 기본 개발 툴 + 파이썬 쉘 + IDLE 에디터를 제공하며, 간단한 프로그램 개발에 적합 👉 주피터 노트북 (Jupyter Notebook) Anaconda | Individual Edition Anaconda's open-source Individual Edition is the easiest way to perform Python/R data science and machine learning on a single mac..
📌 이터레이터와 제너레이터 이터레이터란 여러 개의 요소를 가지는 컬렉션에서 요소를 하나씩 꺼내 어떠한 명령을 수행하도록 돕는 객체를 의미한다. 제너레이터는 일반 함수와 같이 정의되며, 데이터를 반환할 때에 return문이 아닌 yeild문을 사용한다. return과 달리 yeild문을 사용하면 데이터가 보존된다. 👉 이터레이터 ✔ 이터레이터는 반복자라는 의미로, 순회 가능한 자료구조의 요소를 탐색하는데 도움을 준다. ✔ 말하자면 시퀀스의 여러 요소를 하나씩 꺼내어 어떤 수행을 하는데 도움을 주는 객체라고 볼 수 있다. #이터레이터 객체 생성 iterator = range(3).__iter__() # __next__를 사용해 다음 데이터에 접근 print(iterator.__next__()) print(i..
📌 데코레이터 이미 정의되어 있는 함수에 기능을 추가하고자 한다면 데코레이터를 사용한다. 가변 인자를 반드시 사용해야 하는 것은 아니나, 여러 가지 상황에 대응할 수 있으므로 추천한다. 📍 어떤 함수의 이름을 인자로 받아 꾸며준 후, 다시 해당 함수를 리턴(실행)한다. 📍 데코레이트 할 함수의 함수의 정의부 상단에 @데코레이터명을 추가하는 방법으로 사용할 수 있다. 📍 이미 정의된 함수에 로직을 추가하므로 코드 중복을 최소화하고 재사용성이 향상된다. 📍 데코레이터는 중첩이 가능하다. 하지만 가독성이 떨어지고 디버깅이 어렵다는 단점이 있다. 📍 매개 변수로 *args와 **kwargs를 사용하는 것을 추천한다. 👉 데코레이터 만들기 def hello() : print('hello') def hi() : p..
📌 상속 자식 클래스가 부모 클래스로부터 멤버 변수와 멤버 메서드를 물려받는 것을 말한다. 부모 클래스에게서 상속받은 메서드를 자식 클래스에서 기능을 확장(오버 라이딩)할 수 있다. 클래스 내부의 메서드가 기능이 구현되어 있지 않은 추상 메서드인 경우 추상 클래스라고 하며, 이를 상속받은 자식 클래스는 반드시 추상 메서드를 구현해주어야 한다. 📍 자식 클래스가 부모 클래스로부터 멤버를 상속받는다. 📍 부모 클래스로부터 상속받은 메서드를 재 정의하는 것을 오버 라이딩이라고 한다. 📍 부모 클래스의 멤버를 사용하려면 super(). 멤버명으로 접근할 수 있다. 📍 부모 클래스의 인스턴스 멤버에는 당연히 접근 불가능. 📍 기능이 구현되어 있지 않은 빈껍데기 메서드를 추상 메서드라고 한다. 📍 추상 메서드를 가..
📌 특수 메서드 (매직 메서드) 클래스 내부에 선언할 수 있는 특수 메서드를 말한다. 파이썬에서 사용되고 있는 연산자나 함수를 오버 로딩할 수 있다. 기존에 사용되고 있는 연산자나 함수를 오버 로딩하므로, 특수 메서드는 이미 정해진 이름을 사용해야 한다. 📍 특수 메서드는 메서드명 전 후로 이중 언더바를 가지고 있다 (예) __lt__() 📍 이미 파이썬에서 정의되어 사용되고 있는 연산자나 함수를 클래스 내부에 오버로딩한다. 📍 기존에 사용 중인 연산자나 함수를 오버 로딩하므로 이미 정해진 이름을 그대로 사용해야 한다. 📍 메서드 호출 시에는 파이썬에서 통용되는 연산자와 함수명으로 호출한다. 참고. WikiDocs - 왕초보를 위한 파이썬 / WikiDoc - 레벨업 파이썬 👉 특수 메서드의 종류 __d..
📌 객체와 클래스 클래스는 객체에서 사용되는 속성(자료구조)과 메서드를 정의해 묶어준 것을 의미한다. 클래스가 설계도, 객체는 그 설계를 바탕으로 실체화한 것이라고 볼 수 있다. 객체는 인스턴스라고도 부른다. 객체 지향 프로그래밍은 복잡한 문제를 잘게 나누어 객체로 만들고, 객체를 조합하여 문제를 해결한다. 따라서 복잡한 문제를 처리하는 데에 유용하다. 📍 객체 : 클래스로부터 생성되어 클래스의 속성(자료구조)과 메서드를 가진다 📍 클래스 : 객체에서 사용될 속성과 메소드를 정의한 틀 📍 속성 : 클래스와 객체에서 사용되는 변수(자료구조). 멤버 변수라고 부른다. 📍 메서드 : 클래스와 객체에서 사용되는 함수. 멤버 메서드라고 부른다. (매개변수 self를 필수로 가진다) 📍 클래스 내부의 함수는 일반 ..
📌 내장 함수 파이썬의 내장 함수는 모듈이나 패키지를 import하지 않고 바로 사용할 수 있다. 자주 사용하는 함수만 정리(사전 순으로 정리) 해보고 필요하면 그때그때 찾아서 쓰자. 참고 : 파이썬 코딩도장, 점프 투 파이썬 함수명 설명 oct(정수) 정수를 16진수 문자열로 바꾸어 반환 open(파일이름, 파일모드) 지정된 파일을 열어, 파일 모드로 인코딩하여 파일 객체를 반환 - 파일 모드: w (쓰기) , r (읽기) , a (추가) , b (바이너리모드) ord() 문자의 아스키 코드 값을 반환 - 반대되는 기능을 하는 함수로 chr()가 있다 pow(n1, n2) n1 을 n2만큼 제곱한 결과를 반환 range( start, end, step ) 인수로 입력한 범위 값을 반복 가능한 객체로 만..
📌 내장 함수 파이썬의 내장 함수는 모듈이나 패키지를 import하지 않고 바로 사용할 수 있다. 자주 사용하는 함수만 정리(사전 순으로 정리) 해보고 필요하면 그때그때 찾아서 쓰자. 참고 : 파이썬 코딩도장, 점프 투 파이썬 함수명 설명 filter(함수명,시퀀스) 시퀀스의 요소를 함수의 인수로 하나하나 전달해 조건에 맞는 요소만 반환 format(값, 포맷스팩) 값을 지정한 포맷 스펙에 맞추어 문자열로 만든다 (예) format(1000, ',') → 1,000 hex(n) 10진법 정수를 16진수로 반환 id(객체) 객체를 입력받아 객체의 고유 주소(레퍼런스)를 반환 input() 문자열을 입력받는 함수 int(n1) 정수가 아닌 데이터 형의 값을 정수 형태로 반환 int(n1, n2) n2진법으로..