파이썬 10

[Python] 월 단위의 날짜 차이 계산

보통 파이썬은 내장 라이브러리인 timedelta로 날짜의 차이를 구할 수 있다 하지만 아무리 검색해봐도 월단위의 날짜 계산은 찾아보기가 힘들고 계산 방법을 가늠할 수 가 없던 와중 빛같은 글을 발견 월단위 계산은 relativedelta 라이브러리를 사용하여 계산하게 되는데 from dateutil.relativedelta import relativedelta delta = relativedelta(end, start) # 두 날짜의 차이 구하기 result = 12 * delta.years + delta.months # 두 날짜의 차이나는 개월수 for i in range(result): count = start + relativedelta(months=i) # 달수 증가 print(count.str..

study/Python 🌼 2021.07.05

[Python] Mac SSLCertVerificationError

파이썬 웹 크롤링 예제를 따라하던 중 윈도우에서는 아무 문제없이 실행되는 파일 다운로드가 mac에서는 실행이 되지 않았다. 스크래핑을 하는 도중 SSL 문제 발생하여 HTTPS가 적용된 웹 페이지에 대해 스크래핑을 시도할 경우 생기는 문제이다. python 모듈인 urllib을 사용하여 진행 중 해당 에러 봉착. ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1129) 이 문제는 파이썬이 설치된 경로에서 Install Cerificates.command 파일을 실행해 주면 해결이 된다. 해당 파일 실행시키면 ..

study/Python 🌼 2021.06.30

[Python] dataclass 모듈 사용법

파이썬으로 코딩을 하면서 데이터를 담아두기 위해 여러가지 방법을 사용한다. 리스트, 튜블, 딕셔너리, 네임드 튜플, 세트, 프로즌 세트 등등.. 반면 클래스를 통해 데이터를 담아두면 type-safe해지기 때문에 프로그램 실행 중 오류가 발생할 확률이 적어진다는 장점이 있다. 파이썬 3.7에서 dataclass라는 모듈이 표준 라이브러리에 추가되었다. 이를 알아보고자 한다. 공식문서 dataclasses - Data Classes - Python 3.9.5 documentation dataclasses — Data Classes — Python 3.9.5 documentation This module provides a decorator and functions for automatically addin..

study/Python 🌼 2021.05.28

[Python] SQLAlcehmy

SQLAlechmy란? python에서 사용가능한 ORM ORM이란 말 그대로 객체와 관계를 연결해 주는 것 → MyBatis, JVM 같은 것 데이터베이스의 데이터를 ← 매핑 → Object 장점 객체 지향적인 코드로 비즈니스 로직에 집중 가능 재사용 및 유지보수 편리성 증가 DBMS에 대한 종속성이 줄어듬 단점 ORM 만으로는 서비스를 구현하기 어려움 프로시저가 많은 시스템에서는 장점을 가져가기 어려움 공식 사이트 SQLAlchemy - The Database Toolkit for Python SQLAlchemy - The Database Toolkit for Python The Python SQL Toolkit and Object Relational Mapper SQLAlchemy is the Py..

study/Python 🌼 2021.05.28

[Python] 암호화를 하는 bcrypt

bcrypt는 단방향 암호화해주는 파이썬 라이브러리 단방향이라면 평문→암호화는 가능하지만 암호화→평문으로 복호화는 어렵다 비밀번호를 관리할 때 유용하게 쓰인다 db에 암호화되어 저장된 비밀번호를 복호화하는 것도 불가능하기 때문에 내부자가 회원의 비밀번호를 알아내는 것도 불가능하며, 회원이 입력한 비밀번호화 일치하는지만 확인한다 hahsing : 원본의 의미를 알 수 없게 섞어놓은 것 salting : 실제 비밀번호에 랜덤 값을 더해서 해시값을 계산하는 방법 key stretching : 해쉬 값을 여러번 반복하는 행위 pip install bcrypt pip install pyjwt → pyjwt는 jwt(json web token)을 암호화, 복호화해주는 라이브러리이다 >>> import bcrypt ..

study/Python 🌼 2021.05.28

[Python] classmethod vs staticmethod

정적메소드 정적 메소드라 함은 클래스에서 직접 접근할 수 있는 메소드이다 파이썬에서는 클래스에 직접 접근할 수 있는 메소드가 두 가지이다 정적메소드임에도 불구하고 인스턴스에서도 접근이 가능하다 class CustomClass: # instance method def add_instance_method(self, a,b): return a + b # classmethod @classmethod def add_class_method(cls, a, b): return a + b # staticmethod @staticmethod def add_static_method(a, b): return a + b 인스턴스 메소드를 클래스에서 바로 접근하기 >>> from static_method import Custom..

study/Python 🌼 2021.05.28

[codingTest] 프로그래머스 문자열 내 p와 y의 개수 파이썬

문제 설명 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다. 예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다. 제한사항 문자열 s의 길이 : 50 이하의 자연수 문자열 s는 알파벳으로만 이루어져 있습니다. 입출력 예 s answer "pPoooyY" true "Pyy" false 입출력 예 설명 입출력 예 #1 'p'의 개수 2개, 'y'의 개수 2개로 같으므로 true를 return 합..

study/TIL🐥 2021.03.16

[codingTest] 프로그래머스 두 정수 사이의 합 파이썬

문제 설명 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 조건 a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요. a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다. a와 b의 대소관계는 정해져있지 않습니다. 입출력 예 a b return 3 5 12 3 3 3 5 3 12 ✅ 내 코드 def solution(a, b): answer = 0 if a==b: return a elif a>b: for i in range(b, a+1): answer+=i elif a 되게 간단한 문제인데도 else if를 몰라서 ..

study/TIL🐥 2021.03.16

[codingTest] 프로그래머스 모의고사 파이썬

문제 설명 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작..

study/TIL🐥 2021.03.16

[codingTest] 프로그래머스 두 개 뽑아서 더하기 파이썬

문제 설명 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. 입출력 예 numbers result [2,1,3,4,1] [2,3,4,5,6,7] [5,0,2,7] [2,5,7,9,12] 입출력 예 설명 입출력 예 #1 2 = 1 + 1 입니다. (1이 numbers에 두 개 있습니다.) 3 = 2 + 1 입니다. 4 = 1 + 3 입니다. 5 = 1 + 4 = 2 + 3 입니다. 6 = 2 + 4 입니다. 7 = 3 + 4 입..

study/TIL🐥 2021.03.16