Programming Language/Python (35) 썸네일형 리스트형 [Python] Asterisks(*) in Python 파이썬 예제들을 찾아보던 중에 **option과 같은 문법을 발견하였다. 마치 c언어의 포인터와 같이 변수의 앞에 위치하고 있는 asterisk의 의미에 대해서 조사하면서 이외에 파이썬에서 asterisk를 사용하는 방법들에 대해서 살펴보았다. 1. 곱셈, 거듭제곱 연산 기본적으로 곱셈을 위한 연산자로 *를 많이 사용한다. 2 * 5# 10 또한 asterisk를 두개 붙여 사용하여서 거듭제곱 연산자로 사용한다. 2 ** 3# 8 4 ** 2# 16 2. iterable arguments의 unpacking 함수의 argument로 iterable한 값이 입력되었을 때 *를 사용해서 unpacking 할 수 있다. fruits = ['lemon', 'pear', 'watermelon', 'tomato'].. [Python] 비동기 프로그래밍 (asyncio) ■ Synchronous vs Asynchronous - Synchronous programming (동기 프로그래밍) : 주어진 task들을 순차적으로 실행하는 프로그래밍 방식. 하나의 작업이 수행중이면 그 다음 작업은 수행 완료까지 대기한다. - Asynchronous programming (비동기 프로그래밍) : task들을 병렬적으로 수행하는 프로그래밍 방식. 먼저 실행된 작업이 완료되지 않아도 다음 작업이 대기하지 않고 수행된다. ■ Event Loop 이벤트 루프는 작업들을 루프(반복문)를 돌면서 하나씩 실행시키는 역할을 합니다. 만약 실행된 작업이 특정한 데이터를 요청하고 응답을 기다려야 한다면, 이 작업은 다시 이벤트 루프에 통제권을 넘겨줍니다. 통제권을 받은 이벤트 루프는 다음 작업을 실.. [Python] 프로젝트 패키징 & 배포 패키징이란? 패키징이란 모듈별로 생성한 실행 파일들을 하나로 합쳐서 배포 및 설치가 가능한 파일을 만드는 것이다. 파일을 패키징하는 이유는 다른 환경에 소프트웨어를 배포하기 위함이기에 다음과 같은 질문에 대해서 고려하여 패키징을 진행해야한다. - 소프트웨어를 사용할 사람이 누가 될 것인가? 패키징한 소프트웨어를 누가 설치할 것인가? - 소프트웨어가 어떤 환경에 배포되고 실행될 것인가? (서버, 데스크탑, 모바일 등등) - 소프트웨어는 독립적으로 설치가 될 것인가, 아니면 다른 배포 시스템에 연계되어서 설치될 것인가? 패키징한 파일을 배포할 환경에 대한 다양한 요인들에 대해서 고려해서 패키징을 진행해야한다. Python packaging 1. metadata 설정 1-1. setup.py 설정 setup... [Python] 객체 LifeCycle과 Garbage Collection (Reference Counts) ■ 객체의 생명주기 (Object LifeCycle) - 객체의 생성부터 파괴, 해제까지의 기간 1) Allocating memory space 2) Binding or associating methods 3) Initialization 4) Destruction ■ 파이썬의 생명주기 1) Definition - Python Interpreter에서 class를 정의한다. 2) Initialization - __init__ 함수를 호출해서 새로운 instance를 생성하여 메모리를 할당하고 초기화한다. - __new__ 함수가 overriding 된 경우,instance 생성시에 __new__ 함수도 호출한다. 3) Access and manipulation - 객체를 사용한다. 4) Destructio.. [Python] 정규 표현식 (Regular Expressions) ■ 정규표현식: 복잡한 문자열을 특수한 기호들을 사용하여 처리하는 기법 ■ 정규표현식 메타문자 ※ 메타문자란 원래 그 문자가 가진 뜻이 아닌 특별한 용도로 사용하는 문자를 말한다. - 정규표현식에서 사용하는 메타문자들: . ^ $ * + ? { } [ ] \ | ( ) - [] • 문자클래스 • [ ] 사이의 문자들과 매치 • ex) [abc]: "a, b, c 중 한 개의 문자와 매치" • '-' 하이픈 사용: 두 문자 사이의 범위를 표현 • [a-d] == [abcd], [0-5] == [012345] • [a-zA-Z]: 알파벳 전체 • [0-9]: 숫자 • ^ 사용: not의 의미를 가지고 있다. • ex) [^0-9]: 숫자가 아닌 문자 - . (dot) • '\n'을 제외한 모든 문자 한 개와.. ch05. 파이썬 날개달기 (내장함수, 라이브러리) 5. 내장함수 - abs(x): x의 절대값을 반환한다. - all(x): iterable한 변수 x를 인수로 받아서, x의 모든 요소가 True인지 여부를 반환해준다. - any(x): iterable한 변수 x의 요소 중 하나라도 True가 있는 경우 True를 반환해준다. - chr(x): ASCII 값 x를 입력받아서 해당하는 문자를 출력한다. - ord(x): 입력받은 문자 x의 ASCII 코드를 반환해준다. - dir(x): 객체 x가 가지고 있는 변수나 함수를 보여준다. list나 dict 객체의 변수, 함수 등을 보여준다. - divmod(a, b): a를 b로 나눈 몫과 나머지를 튜플 형태로 반환한다. - enumerate(x): 순서가 있는 자료형(리스트, 튜플, 문자열)을 입력으로 받.. ch05. 파이썬 날개달기 (패키지, 예외처리) 3. 패키지 ■ 패키지 - 파이썬 패키지는 디렉토리와 파이썬 모듈로 이루어진 구조이다. - .(dot)을 이용해서 계층적으로 접근 관리가 가능하다. ■ __init__.py - 해당 디렉토리가 패키지의 일부임을 알려주는 역할을 한다. ※ python3.3 버전부터는 __init__.py 파일이 없어도 패키지로 인식한다(PEP 420). 하지만 하위 버전 호환을 위해 __init__.py 파일을 생성하는 것이 안전한 방법이다. - __all__ 변수 • 패키지 import 시에 *를 사용해 import 할 모듈들을 정의하는 변수 • __all__ 변수에 정의되어 있지 않은 모듈은 *를 통해서 해당 패키지를 import 해도 사용할 수 없다. ※ from a.b.c import * 에서 패키지의 마지막인 c.. ch05. 파이썬 날개달기 (모듈) 2. 모듈 ■ 모듈 - 모듈이란 변수 또는 클래스를 모아놓은 파일이다. - 모듈은 다른 파이썬 프로그램에서 불러와 사용할 수 있게끔 만든 파이썬 파일이다. ■ 모듈 만들기 - 모듈 생성 # mod1.py def add(a, b): return a + b def sub(a, b): return a-b - mod1이라는 모듈에 add와 sub라는 함수를 생성했다. ※ .py 확장자를 가지는 파이썬 파일들은 모두 파이썬 모듈이다. ■ 모듈 불러오기 - 모듈을 불러올 때는 해당 모듈이 위치하는 곳에서 import를 사용해서 불러올 수 있다. # mod1 모듈 사용예제 # import {모듈이름} import mod1 print(mod1.add(3, 4))# 7 print(mod1.sub(4, 2))# 2 - i.. 이전 1 2 3 4 5 다음