목록PYTHON (30)
기록과 정리의 공간
참고 링크 링크 인프런 강의 0. 파이썬의 메서드 종류 메서드는 클래스의 행위를 표현하는 것으로 클래스 내의 함수로 볼 수 있다. 파이썬에서 메서드는 크게 3가지로 볼 수 있다. 인스턴스 메서드(instance method) : 아래 1번에서 자세히 설명 정적 메서드(static method) : 아래 2번에서 자세히 설명 클래스 메서드(class method) : 아래 3번에서 자세히 설명 1. 인스턴스 메서드(instance method) 가장 흔히 쓰이는 것으로, 인스턴스 변수에 엑세스할 수 있도록 첫 번째 인자에 항상 객체 자신을 의미하는 self파라미터를 갖는다.(self이외에도 여러개의 파라미터를 가질 수 있다.) 해당 메서드를 호출한 객체에만 영향을 미친다. 객체 속성에 접근이 가능하다. 호..
참고 인프런 강의 파이썬 코딩 도장 - 데코레이터 클로저 함수 관련 포스트를 먼저 읽고 이 글을 읽기! 1. 데코레이터 (decorator) @데코레이터이름과 같은 형태로 사용하며, 함수(메서드)를 장식한다. 데코레이터는 기존에 작성된 함수에 추가 기능을 구현하고자 할 때, 해당 함수를 수정하지 않고도 추가 기능을 사용할 수 있도록 해준다. 데코레이터 하나로 여러 함수에 동일한 기능을 손쉽게 추가할 수 있다. 예를 들어 파라미터가 있는 함수에 파라미터의 유효성 검사가 필요할 때, 파라미터를 가지고 있는 함수마다 유효성 검사 코드를 일일이 넣기에는 매우 비효율적이다. 또한, 일일이 넣었다고 할지라도 유효성 검사와 관련된 코드를 수정해야할 때 함수 마다 일일이 해당 코드를 수정해야하는 불편함이 있다. 이런 ..
참고 인프런 강의 링크 1. 중첩 함수(Nested Function) 함수 내부에 정의된 또 다른 함수 중첩 함수는 해당 함수가 정의된 함수 내에서 호출 및 리턴이 가능하다. 함수 안에 선언된 변수(로컬 변수)는 함수 안에서만 사용 가능한 원리와 동일하다. 예시 def outer_func(): print("outer_func 호출됨") def inner_func(): return "inner_func 호출됨" print(inner_func()) outer_func() """ 결과값 : outer_func 호출됨 inner_func 호출됨 """ 중첩 함수를 함수 밖에서도 호출 할 수 있는 방법이 있다. (자세한 것은 2, 3번 참고) def outer_func(num): def inner_func(): ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/CGglR/btqGTmW6aDf/47isEmiOOlWk1YGc5PaE71/img.jpg)
Flask로 게시판 만들기 - 6 (참고 강의 링크-인프런 강의) (공부 하며 기록이 필요한 부분들만 정리함) 개발 환경 : windows 10 / Python 3.8.1 / vscode 로그인한 유저만 글쓰기 가능하게 하기 글 수정 기능 추가하기 글 삭제 기능 추가하기 글 조회수 증가 시키기 1. 로그인한 유저만 글쓰기 가능하게 하기 이 포스트와 이어짐 글쓰기 버튼을 누르면 로그인한 사용자에 한하여 글쓰기 페이지로 이동하고, 로그인되어 있지 않다면 로그인 페이지로 이동하게 한다. 로그인이 성공하면, 로그인 전에 사용자가 요청했던 페이지로 이동시키도록 한다. 데코레이터 활용(with functools모듈) : 글쓰기 기능 뿐만 아니라 기타 기능 사용을 위해 유저에게 로그인을 요구하기 위해, 함수마다 로그..
TIL - 인프런 강의를 듣고 공부한 내용을 정리(강의 링크) 공부한 내용 pymysql 실습 - INSERT / UPDATE / DELETE pymysql 실습 - SELECT 1. pymysql 실습 - INSERT / UPDATE / DELETE (링크)의 1번과 동일한 패턴으로 작성하면 된다. 예시코드(참고) - 데이터 여러개 한번에 넣기(INSERT) import pymysql # localhost = 자기 pc를 가리킴 (or 127.0.0.1) # mysql의 default 포트번호 3306 db = pymysql.connect(host='localhost', port=3306, user='root', passwd='설정한패스워드', db='..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/sftFh/btqGqa2zBxx/kiBz2kdkLl0sKSg98RO521/img.jpg)
백준 9251번 : LCS(문제 링크) 사용 언어 : 파이썬(Python) 문제 유형 : 동적 프로그래밍(DP), LCS 난이도 : 하 소스코드 import sys x = sys.stdin.readline().rstrip() y = sys.stdin.readline().rstrip() D = [[0] * (len(y)+1) for _ in range(len(x)+1)] for i in range(1, len(x)+1): for j in range(1, len(y)+1): if x[i-1] == y[j-1]: D[i][j] = D[i-1][j-1] + 1 else: D[i][j] = max(D[i][j-1], D[i-1][j]) print(D[len(x)][len(y)]) 설명 최장 공통 부분 수열(LCS..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dIUB3G/btqGmPY7T8T/CGMC5rh2JazRN8mpBNRyIK/img.png)
백준 11053번 : 가장 긴 증가하는 부분 수열(문제 링크) 사용 언어 : 파이썬(Python) 문제 유형 : 동적 프로그래밍(DP), LIS 난이도 : 하 소스코드 import sys n = int(sys.stdin.readline()) array = list(map(int, sys.stdin.readline().split())) D = [1] * n for i in range(1, n): for j in range(0, i): if array[j] < array[i]: D[i] = max(D[i], D[j] + 1) print(max(D)) 설명 가장 긴 증가하는 부분 수열(LIS) 문제는 전형적인 DP문제이다.(반드시 알아두기!) 수열의 크기가 n일 떄, 기본적인 DP알고리즘으로 O(n^2)에 해..
(datetime모듈 - 공식 문서 링크) datetime.timedelta 객체 datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0) timedelta 객체는 두 날짜나 시간의 차이인 기간을 나타낸다. "지금부터 1천 시간 후는 몇 년 몇 월 몇 일 몇 시일까?" 와 같은 질문에 답하는 것에 timedelta 객체를 사용할 수 있다. 인자로 주, 일, 시, 분, 초, 마이크로초 등을 매개변수로 지정하여 인스턴스화 할 수 있다. 인자를 넘길 때에는 여러 가지 단위를 선택하여 지정할 수 있지만, 생성된 timedelta 객체 내부에서는 기간을 일, 초, 마이크로초 의 세 단위로 환산하..