본문 바로가기
반응형

Python123

Python 3.12 - 주요 내용과 예제로 살펴보기 Python 3.12의 주요 변경 사항을 요약하면 다음과 같다새로운 기능 및 개선 사항1. 유연한 f-string 구문 분석:이제 f-string 내부에서 더 많은 표현식을 사용할 수 있습니다. 여러 줄 표현식, 주석, 백슬래시, 유니코드 이스케이프 시퀀스 등을 포함할 수 있게되었다. #아래와 백슬래쉬를 쉽게 사용이 가능하게 되었다.>>> a = ["hello", "world"]>>> f"{'\n'.join(a)}"'hello\nworld'2. 타입 주석 개선:제네릭 클래스와 함수에 대한 새로운 타입 주석 구문이 도입되었다 (PEP 695)이는 제네릭 타입을 사용하는 구문을 더 직관적이고 명확하게 만들어, Python 개발자들이 타입 힌팅을 더 쉽게 사용할 수 있도록 하는 것을 목표로 한다.# 기존 방식.. 2024. 11. 11.
Python - 3.12 Datetime 변화( 메서드는 더 이상 사용되지 않습니다.) 3.12 Datetime 버전에서 Datetime이 큰 변화가 있을 예정이다.Python 3.12에서 datetime 관련 변환에 대한 주요 내용은 다음과 같다.datetime.utcfromtimestamp()와 datetime.datetime.utcnow()가 deprecated되어 향후 버전에서 제거될 예정이다. utcnow() 및 utcfromtimestamp() 메서드의 사용 중단:datetime.datetime의 utcnow()와 utcfromtimestamp() 메서드는 더 이상 권장되지 않으며, 향후 버전에서 제거될 예정이다. 대신, UTC 시간대를 나타내는 객체를 사용하여 now()와 fromtimestamp() 메서드를 호출할 때 tz 매개변수를 datetime.UTC로 설정하는 것이 좋.. 2024. 11. 11.
Python SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1007 개발을 진행하다보면, SSL 통신 오류가 다양하게 발생한다.오늘은 SSL을 읽던중에 발생하는 문제로,  SSL: UNEXPECTED_EOF_WHILE_READING 에 대해서 짧게 얘기해보겠다.이 오류는 기본적으로 예전 인증서를 openssl의 지원하지 않으면서 발생한다고 보면된다.1. openssl을 최신으로 업데이트를 한다면 문제가 해결될 가능성이 높다.apk update && apk upgrade openssl2. 특정 프로토콜을 사용하도록 지정하는 방법도 유용하다.import sslimport certifiimport requests.urllib as urlrqresp = urlrq.urlopen(url="https://", contex.. 2024. 9. 4.
Python - Error Can't pickle local object 오류 해결 Can't pickle local object 에러는 보통 멀티 프로세스 작업에서 발생하는데, 데이터 객채를 가져갈 수 없다는 의미이다.즉 프로세스별로 오브젝트를 관리해야 하는데, 이를 공유할 수 없는 상태의 데이터라는 의미보통 전역 데이터 등은 공유하는데 문제가 없지만, Database 오브젝트 같은 네트워크 세션을 관리하는 데이터와 같이 프로세스 간에 서로 데이터의 갱신이나 호출을 하는 경우에는 프로세스간 자원 공유의 문제이다. 이를 해결 하기 위해서는 함수를 프로세스 안에서 호출 해서 사용하도록 하고, 전역 변수로 선언해서 사용해야 하는데, 전역 변수 일 경우 갱신과 같은 데이터 변경에 주의하는게 좋다. from sqlalchemy import create_engineimport multiproce.. 2024. 6. 20.
SQLAchemy - Column expression, FROM clause, or other columns clause element expected, 오류 해결 SQLAchemy가 2.x로 업그레이드 되면서 과거 버전에서 사용하던 문법들을 간결화 한다는 목적으로 다수 지원하는게 없어져서 1.x 개발을 진행한 개발자들을 힘들게 한다.따라서 개발자는 SQLAchemy 1.x버전을 계속 사용하거나, 문제가 있는 부분을 패치해서 해결해야 한다.그중 오늘은  Column expression, FROM clause, or other columns clause element expected 으로 Metadata로 테이블 정보를 사용할 때 select 와 where를 함께 사용할 때 2.x에서 제거된 문법을 알아보고자 한다.1.x 버전에서 사용되던 문법 방식이다.select([table.c.x, table.c.y]).where(table.c.x == 1).frist()이중에 .. 2024. 6. 10.
머신러닝 - 선형 회귀(Linear regression) 알고리즘 특징과 코드 선형 회귀와 다항 회귀는 머신러닝에서 K-최근접 이웃점 회귀과 함께 기본적으로 배우게 되는 머신러닝 모델이자, 성능이 좋은 모델이라고 할 수 있다. 특히  K-최근접 이웃점 회귀과 다르게 미래를 예측할 수 기능을 가지고 있다. K-최근접 이웃점 회귀 는 미래의 데이터를 예측하는데에는 사용하기 어렵다. 이유는 학습 데이터의 평균으로 예측을 하기 때문에, 만약 측정되지 않은 값이 들어온다면, 예측이 되지 힘들어진다.이 부분에 선형 회귀를 이용해서 해결할 수 있는데, 이유는 학습 데이터를 통해 유의미한 연결 선을 생성하여 해당 선을 통해 측정되지 않은 값도 예측이 가능하게 된다.아래 그림과 같이 파란 점의 학습 데이터가 있다고 하자. 여기에 가장 중심이 되는 선을 하나 긋고, 이를 통해서 학습하지 않은 영역에.. 2024. 6. 8.
Python - 스플렁크(Splunk) Query 검색 Splunk 는 외부에서 손쉽게 쿼리 검색등 다양한 작업을 할 수 있도록 지원하고 있다.그중 쿼리 검색에 대해서 알아보도록 하자.먼저 Splunk 라이브러리 splunk-sdk를 설치하자.pip install splunk-sdk이후 아래와 같은 코드를 통해 쿼리 검색이 가능하다.import splunklib.client as client# 스플렁크 연결HOST = "splunk_host"PORT = 8089USERNAME = "account_username"PASSWORD = "account_password"# 검색 쿼리 설정SEARCH_QUERY = "search index=my_index | stats count by _time"# 스플렁크 연결service = client.connect( ho.. 2024. 6. 8.
Python - 리스트(list) 중복제거, 고유값 만들기 Python에서 리스트를 중복값을 제거하는 가장 손쉬운 방법은 set() 이라는 내부 함수를 이용하는 방법이다.set()을 이용하면 리턴 값으로 중복된 값을 제거한 list를 기본적으로 dict()로 반환하게 된다.다음과 같이 이용이 가능하다. >>> set([1,2,3,4,5,1,2,4,5,6,2,1,1,34,3,]){1, 2, 3, 4, 5, 6, 34}한글과 같은 문자열도 정상적으로 사용이 가능하다. >>> set(["2","1","1","ㄴ","ㄱ","ㄷ","한","ㄴ","ㄱ"]){'한', '1', 'ㄴ', 'ㄱ', 'ㄷ', '2'}결과를 보면, 딕셔너리 형태이긴 하지만 리스트처럼 활용이 가능하다. 하지만 dict 사용에 데이터타입을 list로 활용하고자 한다면, list 문을 추가하여 결과를 반.. 2024. 6. 8.
Python - ' '.join() 리스트(list) 연결하여 문자열 로 만들기 파이썬의 join() 함수는 리스트(list)에 있는 요소들을 지정된 구분자로 연결하여 문자열을 반환하는 함수이다.실무에서 리스트 값을 문자열로 표현하고자 할 때 자주 사용된다.예제 코드로 살펴보면, 아래와 같이 구분자를 \n 를 줄경우 각 리스트에 항목 사이에 \n(줄바꿈)이 들어가서 화면에 표시될때 줄바꿈 효과가 나타나게 된다.strings = ["Hello", "Python", "World"]result = "\n".join(strings)print(result) 만약 공객을 이용하게 되면, 문자열 사이에 공백이 들어가게 된다.strings = ["Hello", "Python", "World"]result = " ".join(strings)print(result) 2024. 6. 8.
반응형