일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 야근지수
- 피보나치 함수
- 격파르타 장점
- candies
- 해커랭크
- Roads and Libraries
- python
- Algorithm
- 코딩테스트
- Reverse Shuffle Merge
- 머신러닝
- Recursion: Davis' Staircase
- programmers
- 구슬탈출2
- BFS: Shortest Reach in a Graph
- 알고리즘
- Interview Preparation Kit
- hackerrank
- 격파르타 후기
- Max Array Sum
- 백준
- Common Child
- 매칭점수
- Special String Again
- 프로그래머스
- 격파르타 합격후기
- Find the nearest clone
- 파이썬
- [sqld]자격증합격
- DFS: Connected Cell in a Grid
- Today
- Total
목록공부/Python (18)
Archive
출처 : https://www.ics.uci.edu/~pattis/ICS-33/lectures/complexitypython.txt
제네릭 프로그래밍 제네릭(generic) : 파라미터의 타입이 나중에 지정되게 해서 재활용성을 높일 수 있는 프로그래밍 스타일. 파이썬은 원래 동적 타이핑(Dynamic Typing)언어이기 때문에 제네릭이 필요 없음. 타입이 표기되지 않기 때문에 특정 변수의 타입을 바로 알기 어려워 가동성이 낮음. 후에 PEP 484에 추가된 타입 힌트(Type Hints)를 통해 제네릭을 사용. PEP 484는 파이썬 3.5부터 사용 가능. 타입 힌트를 통해 함수의 파라미터가 어떤 자료형이 들어가고, 리턴 값이 무엇인지 명시해줌으로써 가독성을 향상시킴. def are_equal(a : int, b : int) -> bool: return a==b 네이밍 컨벤션 Snake case : 각 단어를 '_'로..
1. 비공개 멤버- 클래스의 상세한 구조에 관해 몰라도 클래스에 포함된 기능을 이용할 수 있으면 된다.- 객체지향에서는 '캡슐화'라는 은폐 기능이 있다. - 파이썬에서는 메서드 이름이나 변수 이름이 '_'로 시작되는 것은 '비공개 멤버'로 정의하고 클래스를 이용하는 사람은 이 비공개 멤버에 접근할 수 없다는 규칙이 있다.- 멤버 : 클래스 안에 정의하는 메서드나 변수- 실제로는 클래스 이용자도 언더바로 시작되는 이름의 멤버를 조작할 수 있다.- 맹글링 : 멤버 앞에 '__' 언더바를 2번 붙인다. 멤버 이름이 '_클래스명__요소명'으로 치환된다.(바로 '인스턴스.__멤버'로 접근하면 오류가 발생)12345678910111213141516class Game: def __goal(self): print("비..
1. 상속- 이미 정의된 클래스를 기반으로 새로운 요소를 추가해서 클래스를 다시 정의하는 것을 말한다.- 이미 있던 클래스를 '슈퍼클래스', 새로 정의한 클래스를 '서브 클래스'라고 부른다.- 서브 클래스는 슈퍼 클래스가 갖고 있던 기능을 그대로 포함하므로 서브 클래스를 정의할 때 슈퍼 클래스와 서브 클래스의 차이만 다시 정의하면 된다. 2. 클래스를 상속하는 방법 class 서브클래스 이름 ( 슈퍼클래스 이름) :서브 클래스 정의- 클래스 이름 뒤에 슈퍼클래스의 이름을 쓰자.12345678910111213141516171819202122232425262728293031323334class Car: ''' 기본적인 기능을 갖춘 자동차를 나타내는 클래스 ''' def __init()__(self, owne..
1. 객체지향- 하나의 객체(오브젝트) 안에 여러 가지 기능을 가진 데이터와 메서드(함수)가 들어 있다.- 가장 먼저 클래스를 선언하자.- 그리고 함수와 변수를 클래스 안에서 정의하자.- 메서드(method)는 def를 사용해 선언한다.- 클래스 안에 있는 메서드를 정의할 때 첫 번째 인수로 반드시 self를 지정해야 한다.- 변수를 속성(Property)라 부른다. 2. 클래스로 오브젝트를 생성한다1234567# Human이라는 클래스를 기초로 하여 오브젝트를 생성한다. hum = Human() # Human 클래스 안에 정의한 메서드를 호출한다.hum.take("banana")hum.eat()cs- 객체지향에서 클래스를 기반으로 생성한 오브젝트를 '인스턴스'라고 부른다.- 하나의 클래스를 정의하면 인..
1. 데코레이터(Decorator)- 함수에 부가 기능을 추가할 수 있다.- 데코레이터를 정의할 때 함수 오브젝트를 반환하도록 정의해야 한다. 따라서 데코레이터를 정의할 때 함수A안에 함수B를 정의하고 함수 B의 오브젝트를 반환하도록 구현해야한다. 1234567891011121314151617181920212223# 실행 시간을 측정하는 데코레이터import timedef time_log(func): def wrapper(*args, **kwargs): #전처리 import datetime start = datetime.datettime.today() print("----start", func.__name__) #함수 실행 result = func(*args, **kwargs) #후처리 end = dat..
1. List Comprehensions- 복잡한 값을 가지는 리스트, 튜플. Dictionary를 손쉽게 생성하기 위한 표기 방법이다.[식 for . . in . .]1234567data = [i*2 for i in range(1, 6)]print(data)# [2, 4, 6, 8, 10] data = list(map(lambda x : x*2, range(1, 6)))print(data)# [2, 4, 6, 8, 10]cs123456789# [1, 3, 5, 7, 9]data = [(i*2 - 1) for i in range(1, 6) ]print(data) data = [i for i in range(1, 11, 2) ]print(data) data = [i for i in range(1, 11) ..