본문 바로가기

Python

(9)
[Python] top-level 코드 ( import시점 & runtime 시점 ) 파이썬에서 top-level 코드는 해당 모듈의 import 시점에, 단 한 번만 실행된다.* top-level 코드 : 함수/클래스 밖의 모듈. ( if 분기문, for 반복문, print 등 포함 ) (config.py)from datetime import datetimeprint(f"===import 시점 실행===")NOW = datetime.now() # top-level 코드print(f"[config.py] NOW(import): {NOW}")print(f"===import 시점 실행===")def get_current_time(): # top-level 코드 global NOW return NOW(main.py)from config import get_current_tim..
[Python] 패킹(Packing) & 언패킹(Unpacking) * 패킹(Packing) 여러 개의 값을 하나의 튜플로 패킹.data = 1, 2, 3print(data)# 출력결과 : (1, 2, 3)=> 여러개의 값을 data 라는 변수에 패킹. 출력결과는 튜플인 것을 확인할 수 있다.  * 언패킹(Unpacking)하나의 변수에 묶여 있던 값을 여러 변수에 나눠서 할당. (자바스크립트의 구조분해할당과 유사한듯)a, b, c = dataprint(a) # 출력결과: 1print(b) # 출력결과: 2print(c) # 출력결과: 3=> data 튜플에 담겨있던 값들을 각각 a, b, c라는 변수에 언패킹.언패킹 변수의 갯수와 데이터(튜플, 리스트 등) 갯수를 맞춰줘야함!!  파이썬은 여러개의 값을 return하면 자동으로 튜플로 묶어버린다. (패킹)def g..
[Python] Deepdiff, PyYAML 라이브러리 (+ YAML이란?) * Deepdiff Python에서 두 개의 데이터 구조(딕셔너리, 리스트, JSON 등)를 비교하여 변경된 부분만 추출할 수 있도록 도와주는 패키지.설치pip install deepdiff  1) Dictionary 비교from deepdiff import DeepDiffdict1 = {"name": "Alice", "age": 25}dict2 = {"name": "Alice", "age": 30}diff = DeepDiff(dict1, dict2)print(diff)결과{'values_changed': {"root['age']": {'old_value': 25, 'new_value': 30}}}  2) List 비교list1 = [1, 2, 3]list2 = [1, 3, 2]diff = DeepDif..
[Python] 웹 프레임워크 (Django, Flask, FastAPI, Sanic 등..) [ Django ] - 풀스택 웹 프레임워크 - ORM(객체 관계 매핑)을 통해 데이터베이스 작업이 쉽고 직관적 - 복잡한 웹 애플리케이션, 대규모 프로젝트, 빠른 프로토타이핑에 적합. [ Flask ] - 경량 프레임워크 - 간단하고 가벼우며, 필요한 모듈만 추가하는 방식. - 마이크로서비스, 작은 웹 애플리케이션, RESTful API 에 적합. [ FastAPI ] - 매우 빠르고, 비동기(Asyncio) 지원. - 타입 힌트(Type Hint) 를 통해 데이터 검증과 자동 문서화(스웨거 UI) 지원. - 고성능 API 서버, 머신러닝 모델 API, 비동기 애플리케이션에 적합. [ Tornado ] - 비동기 네트워크 라이브러리와 함께 제공되는 웹 프레임워크. - 비동기 I/O를 지원해 많은 동시 ..
[Python] pymysql 라이브러리 (MySQL 데이터 베이스 연동) ( 설치 )pip install pymysql ( DB연결 ) _MySQL connection = pymysql.connect( host='your_host', # 데이터베이스 서버의 호스트 (예: 'localhost' 또는 IP 주소) user='your_username', # MySQL 사용자 이름 password='your_password', # MySQL 사용자 비밀번호 db='your_database', # 연결할 데이터베이스 이름 charset='utf8mb4', # 인코딩 설정 cursorclass=pymysql.cursors.DictCursor # 결과를 딕셔너리 형식으로 반환)  [ cursor ]데이터베이스와..
[Python] zfill() _ 문자열채우기 (날짜/시간 표현) zfill() 메소드 지정한 문자열 길이가 될때까지 문자열 앞을 '0'으로 채워 반환. import datetime# 현재 날짜/시간now = datetime.datetime.now()hour = now.hour# 1minute = now.minute# 7time_format = f"{hour}시간 {str(minute).zfill(2)}분"print(time_format)# 1시간 07분  만일 현재 시간이 1시 7분이라면 str(minute).zfill(2)  => 2자리가 될때까지 앞을 0으로 채워 ' 07 '을 반환.
[Python] dictionary 타입 get 메소드 / KeyError dictionary 타입에서 값을 가져올 때 get메소드를 사용하여 'key'값으로 'value'를 가져온다 (Java의 Map과 비슷.)이 때, 'key' 값이 없다면 KeyError 가 발생. (Java의 Map에서는 null을 반환.)따라서, get 메소드의 두번째 인자에 기본값을 넣어주면, 'key'값이 없는 경우 error가 아닌 이 기본값을 반환.dict = {'a': 1, 'b': 2}# 'a' 키에 대한 값을 안전하게 가져오기value_a = dict.get('a', '기본값') # 결과는 1# 'c' 키는 딕셔너리에 없으므로 기본값을 반환value_c = dict.get('c', '기본값') # 결과는 '기본값'   import requests# 예시 URL에서 요청을 보냅니다.res..
[Python] datetime 날짜/시간 모듈 (fromtimestamp(), utcfromtimestamp()) Unix 타임스탬프 : 1970년 1월 1일 00:00:00 UTC 이후 경과된 초의 수from datetime import datetime# 현재 Unix 타임스탬프를 가져옵니다.timestamp = 1625072400   datetime.fromtimestamp() _ 현지시간# 현지 시간으로 변환local_dt = datetime.fromtimestamp(timestamp)print("Local Time:", local_dt) 출력결과 =>  Local Time: 2021-06-30 12:00:00   datetime.utcfromtimestamp() _ UTC시간# UTC 시간으로 변환utc_dt = datetime.utcfromtimestamp(timestamp)print("UTC Time:",..