본문 바로가기

인터페이스 개발/Python61

Python - 스레드 스레드 멀티 스레드 프로세스(process) 실행 중인 하나의 프로그램 하나의 프로그램이 여러 프로세스로 만들어짐 멀티 태스킹(multi tasking) 두 가지 이상의 작업을 동시에 처리하는 것 멀티 프로세스 독립적으로 프로그램들을 실행하고 여러 가지 작업 처리 멀티 스레드 한 개의 프로그램을 실행하고 내부적으로 여러 가지 작업 처리 메인(main) 스레드 모든 프로그램은 메인 스레드가 실행하며 시작 실행 파일의 첫 코드부터 아래로 순차적으로 실행 더 이상 실행할 코드가 없는 경우 종료 실행 종료 조건 마지막 코드 실행 return 문을 만나면 main 스레드는 작업 스레드들을 만들어 병렬로 코드들 실행 멀티 스레드 생성해 멀티 태스킹 수행 프로세스의 종료 싱글 스레드: 메인 스레드가 종료하면 프로세스.. 2020. 10. 19.
Python - 파일[데이터베이스] - SQlite 데이터 베이스 Chap.14 파일[데이터베이스] - SQlite 데이터 베이스 데이터베이스 SQlite 데이터 베이스 SQlite 데이터 베이스 DBMS 설치 SQLite 설치 : https://www.sqlite.org/download.html SQLite Download Page Templates (1) and (2) are used for source-code products. Template (1) is used for generic source-code products and templates (2) is used for source-code products that are generally only useful on unix-like platforms. Template (3) is used for preco.. 2020. 7. 29.
Python - 파일[예제] - Database Application Chap.14 파일[예제] - Database Application 파일[예제] Database Application >> pip install mysqlclient 현재 sqldb.tbladdr 상황 1단계(베이스) 뼈대 만들기 # DB+App.py import sys from myapp import Application, MenuItem class DBApp(Application): # 상속 def __init__(self): super().__init__() def create_menu(self, menu): menu.add(MenuItem("목록", self.print_list)) menu.add(MenuItem("추가", self.add)) menu.add(MenuItem("수정", self.u.. 2020. 7. 29.
Python - 파일[데이터베이스] - MySQL/MariaDB, 테이블 생성, 데이터 삽입, 테이블 조회, 수정 및 삭제 Chap.7-3 SQL 고급[조인] 이후 (Python 데이터베이스 연동) Chap.14 파일[데이터베이스] - MySQL/MariaDB, 테이블 생성, 데이터 삽입, 테이블 조회, 수정 및 삭제 데이터베이스 MySQL/MariaDB, 테이블 생성, 데이터 삽입, 테이블 조회, 수정 및 삭제 MySQL/MariaDB pip install mysqlclient import MySQLdb db = MySQLdb.connect(db="sqldb", host="localhost", user="root", passwd="1234", charset='utf8') cursor = db.cursor() # cursor를 통해 SQL 문장 실행 # 자원 해제 및 접속 해제 cursor.close() db.close() .. 2020. 7. 29.
Python - [추가] - 데이터 시각화 Matplot matplotlib로 그래프 그리기¶ 모듈¶ In [1]: import matplotlib.pyplot as plt # conda install matplotlib도 가능 In [2]: import numpy as np 선 그래프¶ 기본적인 선 그래프 그리기¶ plt.plot([x,] y[, fmt]) x : x축 좌표의 값 시퀀스 데이터 y : y축 좌표의 값 시퀀스 데이터 fmt : format string In [3]: data1 = [10, 14, 19, 20, 25] In [4]: plt.plot(data1) plt.show() # Jupyter 브라우저 안에서 실행(pycham에서는 새창) In [ ]: %matplotlib qt # 새창에서 보기 In [5]: plt.plot(data1) #.. 2020. 7. 28.
Python - [추가] - 배열 데이터를 효과적으로 다루는 NumPy 배열 생성하기¶ 시퀀스 데이터로부터 배열 생성¶ arr_obj = np.array(seq_data) 시퀀스 데이터(리스트, 튜플 등)를 배열로 변경 배열의 속성 dtype : 배열 요소의 데이터 타입 shape : 배열의 모양(차원)을 튜플로 표현 In [1]: import numpy as np In [2]: data1 = [0, 1, 2, 3, 4, 5] a1 = np.array(data1) a1 Out[2]: array([0, 1, 2, 3, 4, 5]) In [3]: data2 = [0.1, 5, 4, 12, 0.5] a2 = np.array(data2) a2 Out[3]: array([ 0.1, 5. , 4. , 12. , 0.5]) In [4]: a1.dtype Out[4]: dtype(&#39.. 2020. 7. 28.
Python - 고급 문법[데코레이터] - 일급 시민, 지역 함수, 함수 데코레이터, 클래스 데코레이터 Chap.17 고급 문법[데코레이터] - 일급 시민, 지역 함수, 함수 데코레이터, 클래스 데코레이터 데코레이터 일급 시민, 지역 함수, 함수 데코레이터, 클래스 데코레이터 일급 시민 함수도 일반 변수와 동일한 특성을 가짐 ① 이름을 가진다. ② 다른 변수에 대입할 수 있다 . ③ 인수로 전달할 수 있다 . ④ 리턴값이 될 수 있다 . ⑤ 컬렉션에 저장할 수 있다 . --> 위와 같은 특성을 가지는 것을 일급시민이라고 함 Python은 지원한다. (Java는 함수가 없어서 지원X) funcvalue def add(a, b): print(a + b) plus = add # 변수에 저장할 수 있다. plus(1, 2) 결과 3 funcpara def calc(op, a, b): # 함수의 인자로 전달할 수 .. 2020. 7. 28.
Python - 고급 문법[반복자] - 열거 가능 객체, 제너레이터 Chap.17 고급 문법[반복자] - 열거 가능 객체, 제너레이터 반복자 열거 가능 객체, 제너레이터 열거 가능 객체 for 반복문의 순회 대상 객체 해당 객체의 __iter__() 메서드로 열거 가능 객체 획득 - 열거 가능 개체는 __iter__() 메서드를 정의해야 함 매 루프마다 __next()__ 함수를 통해 다음 요소를 추출 더 이상 요소가 없는 데 __next()__를 호출하는 경우 - StopIteration 예외가 발생하고 for 반복문을 끝냄 foriter (for문 내부적 구현) nums = [11, 22, 33] it = iter(nums) while True: try: num = next(it) except StopIteration: break print(num) 결과 11 22 .. 2020. 7. 28.
Python - 가상환경[가상환경] - 모듈, 목록, 만들기, 활성화, 비활성화, 삭제 Chap.16-2 가상환경[가상환경] - 모듈, 목록, 만들기, 활성화, 비활성화, 삭제 가상환경 모듈, 목록, 만들기, 활성화, 비활성화, 삭제 가상환경(Virtual Environment) 파이썬에서는 한 라이브러리에 대해 하나의 버전만 설치가 가능 여러개의 프로젝트를 진행하는 경우 - 프로젝트마다 동일 패키지에 대해 다른 라이브러리를 사용하는 경우 문제 이를 방지하기 위한 격리된 독립적인 가상환경을 제공 일반적으로 프로젝트마다 다른 하나의 가상환경을 생성한 후 작업을 시작 pip는 버젼을 설정하지 않으면 가장 최신 버전을 설치한다. 가상환경을 만드는 대표적인 모듈 venv : Python 3.3 버전 이후 부터 기본모듈에 포함됨 virtualenv : Python 2 버전부터 사용해오던 가상환경 라.. 2020. 7. 28.
Python - Pillow 이미지 처리[PIP] - PIP, 이미지 읽기/저장/화면 출력, 색상 변경, 썸네일 만들기, 이미지 부분 잘라내기, center_crop, 이미지 회전 및 Resize, 이미지 필터링, 이미지 ↔ numpy 배열 Chap.16-1 Pillow 이미지 처리[PIP] - PIP, 이미지 읽기/저장/화면 출력, 색상 변경, 썸네일 만들기, 이미지 부분 잘라내기, center_crop, 이미지 회전 및 Resize, 이미지 필터링, 이미지 ↔ numpy 배열 PIP PIP, 이미지 읽기/저장/화면 출력, 색상 변경, 썸네일 만들기, 이미지 부분 잘라내기, center_crop, 이미지 회전 및 Resize, 이미지 필터링, 이미지 ↔ numpy 배열 PIP 파이썬 이미지 처리 라이브러리 pip install pillow - 아나콘다에 기본 탑재되어 있음 기본 사용방법 >> pip install pillow # 터미널 프로젝트 폴더에 이미지파일 python.png 다운로드한 상태 이미지 읽기/저장/화면 출력 .open, .. 2020. 7. 28.
Python - 모듈과 패키지[패키지, 써드 파티 모듈] - 패키지, __init__.py, 모듈의 내부, dir() 함수, help() 함수, 외부 모듈 관리 pip Chap.16 모듈과 패키지[패키지, 써드 파티 모듈] - 패키지, __init__.py, 모듈의 내부, dir() 함수, help() 함수, 외부 모듈 관리 pip 패키지 패키지, __init__.py 패키지 모듈들을 모아 놓은 디렉토리 반드시 __init__.py가 존재해야 함 # 패키지용 디렉토리임을 알림 - 일반적으로 내용은 없음 __init__.py from 패키지 import * - *에 의해 임포트될 모듈 목록을 __all__ 리스트로 지정 - 지정하지 않으면 모든 모듈이 임포트됨 ex) from mypack.calc import * add.outadd(1,2) multi.outmulti(1,2) 기능은 있지만 잘 사용하지 않음 __all__ = ["add", "multi"] print("a.. 2020. 7. 28.
Python - 모듈과 패키지[예제] - 주소록+메모장(2) Chap.16 모듈과 패키지[예제] - 주소록+메모장(2) 모듈과 패키지[예제] 주소록+메모장(2) 주소록+메모장(2) myapp.py와 util.py \PYTHON_LIB 로 이동 내PC -> 속성 -> 고급 시스템 설정 -> 환경변수 -> 시스템 변수 -> 새로 만들기 변수이름 PYTHONPATH 변수값 C:\PYTHON_LIB \PYTHON_LIB\util.py # util.py INCH = 2.54 def calcsum(n): sum = 0 for num in range(n+1): sum += num return sum if __name__ == "__main__" : # 단독 실행되었다면 True print("1inch = ", INCH) print("~10 = ", calcsum(10)) \P.. 2020. 7. 28.