1. 잡담
- javaScript가 실행 프로그램이 없는 이유 : 운영체제에 포함된 웹 브라우저에 엔진이 설치되어 있어서 해석해준다.
- 웹 브라우저의 역할 : HTML코드(CSS, JavaScript)를 해석해서 화면에 보여주는 역할을 한다. 웨일, 크롬, 엣지, 익스플로러로 실행하면 각각 다 실행 결과가 조금씩 다를 수 있다.(예전에 공공기관에서 익스플로러에서만 실행이되고 엣지나 크롬에선 실행이 안되는 경우가 엔진이 다르기 때문이다.)
- 자바스립트느 스크립트어이다.(메모장에서 작성 할 수 있다.)
- 노드, 파이썬은 인터프린터를 설치해야 코드를 해석해서 실행시켜준다.(이클립스를 설치하는 이유)
- 자바 설치할 때 JVM(jdk)를 같이 설치한다.
2. 내장함수
- 파이썬을 설치한다 : 인터프린터 + 기본 내장함수를 설치한다.
2.1 enumerate
enumerate는 ‘열거하다’라는 뜻이다. 이 함수는 순서가 있는 데이터(리스트, 튜플, 문자열)를 입력으로 받아 인덱스 값을 포함하는 enumerate 객체를 리턴한다.
보통 enumerate 함수는 for 문과 함께 사용한다.
2.2 len
len(s)는 입력값 s의 길이(요소의 전체 개수)를 리턴하는 함수이다.
- int type은 길이를 알 수 없다.
2.3 type
type(object)는 입력값의 자료형이 무엇인지 알려 주는 함수이다.
2.4 zip
zip(*iterable)은 동일한 개수로 이루어진 데이터들을 묶어서 리턴하는 함수이다.
여기서 사용한 *iterable은 반복 가능한 데이터를 여러 개 입력할 수 있다는 의미이다.
3. 표준 라이브러리
- 파이썬 표준 라이브러리는 파이썬을 설치할 때 자동으로 컴퓨터에 설치된다.
- 라이브러리를 사용하기 위해선 import를 해야된다.
3.1 datetime.date
datetime.date는 연, 월, 일로 날짜를 표현할 때 사용하는 함수이다.
3.2 time
시간과 관련된 time 모듈에는 함수가 매우 많다. 그중 가장 유용한 몇 가지만 알아보자.
1) time.sleep
time.sleep 함수는 주로 루프 안에서 많이 사용한다. 이 함수를 사용하면 일정한 시간 간격을 두고 루프를 실행할 수 있다.
3.3 os
os 모듈은 환경 변수나 디렉터리, 파일 등의 OS 자원을 제어할 수 있게 해 주는 모듈이다.
- 디렉터리 위치 변경하기 - os.chdir
os.chdir를 사용하면 다음과 같이 현재 디렉터리의 위치를 변경할 수 있다.
- 디렉터리 위치 돌려받기 - os.getcwd
os.getcwd는 현재 자신의 디렉터리 위치를 리턴한다.
- os 모듈을 통해 운영체제의 리소스에 접근하고 값을 읽거나 수정할 수 있다. 따라서 바이러스의 위험이 있으므로 웹에서 접근할 수 있는 os 범위는 쿠키로 제한한다.
- 쿠키 : 로그인 기록이나 검색 기록 등
3.4 glob
- 가끔 파일을 읽고 쓰는 기능이 있는 프로그램을 만들다 보면 특정 디렉터리에 있는 파일 이름 모두를 알아야 할 때가 있다. 이럴 때 사용하는 모듈이 바로 glob이다.
4. 외부 라이브러리
4.1 pip
- pip은 파이썬 모듈이나 패키지를 쉽게 설치할 수 있도록 도와주는 도구이다. pip으로 파이썬 프로그램을 설치하면 의존성 있는 모듈이나 패키지를 함께 설치해 주기 때문에 매우 편리하다.
- 예를 들어 B라는 파이썬 패키지를 설치하려면 A라는 패키지가 먼저 설치되어야 하는 규칙이 있다고 가정할 때 pip을 이용하면 B 패키지를 설치할 때 A 패키지도 자동으로 함께 설치된다.
- pip는 명령프롬프트 명령어이다. os단계에서 실행한다.
- pip list
- pip install
- pip uninstall
설치한 패키지를 삭제하고 싶다면 다음 명령어로 삭제할 수 있다.
- 최신 버전으로 업그레이드하기
패키지를 최신 버전으로 업그레이드하려면 --upgrade 옵션과 함께 사용한다.
4.2 Faker
이번에는 pip을 사용하여 유용한 외부 라이브러리중 하나인 Faker를 설치하고 사용해 보자. Faker는 테스트용 가짜 데이터를 생성할 때 사용하는 라이브러리이다.
- Faker()에 한글로 세팅하거나 일본어로 세팅하는 등 다양한 기능을 사용하기 위해선 라이브러리를 구글에 검색해서 찾아본다.
- https://faker.readthedocs.io/en/master/
Welcome to Faker’s documentation! — Faker 23.2.1 documentation
Welcome to Faker’s documentation! Faker is a Python package that generates fake data for you. Whether you need to bootstrap your database, create good-looking XML documents, fill-in your persistence to stress test it, or anonymize data taken from a produ
faker.readthedocs.io
교수님 티스토리 주소 : https://recording-it.tistory.com/
5. list comprehension
- 코드 한 줄로 리스트 만들기
[expression for item in iterable if condition]
- 집합, 딕셔너리, 리스트 모두 컴프리헨션 사용할 수 있다.
- 튜플은 값을 변경하거나 추가할 수 없기 때문에 사용할 수 없다. ->괄호를 사용하면 제너레이터 클래스가 생성된다.
6. map
- map(f, iterable)은 함수(f)와 반복 가능한 데이터를 입력으로 받는다. map은 입력받은 데이터의 각 요소에 함수 f를 적용한 결과를 리턴하는 함수이다.
- map은 메모리 구조만 가지고 있고 값을 찍진 않은 상태, 따라서 튜플형도 만들 수 있다.
6.1 map 객체
7. filter
- 내장함수
- filter란 ‘무엇인가를 걸러 낸다’라는 뜻으로, filter 함수도 이와 비슷한 기능을 한다.
- filter는 조건에 맞는 요소만 반환한다.
filter(함수, 반복_가능한_데이터)
- filter 함수는 첫 번째 인수로 함수, 두 번째 인수로 그 함수에 차례로 들어갈 반복 가능한 데이터를 받는다. 그리고 반복 가능한 데이터의 요소 순서대로 함수를 호출했을 때 리턴값이 참인 것만 묶어서(걸러 내서) 리턴한다.
8. functools.reduce
- 표준 라이브러리(import를 해야된다)
- functools.reduce(function, iterable)은 함수(function)를 반복 가능한 객체(iterable)의 요소에 차례대로(왼쪽에서 오른쪽으로) 누적 적용하여 이 객체를 하나의 값으로 줄이는 함수이다.
- reduce는 반복 가능한 객체의 각 요소를 지정된 함수로 처리한 후 이전 결과와 누적해서 반환합니다. reduce의 기본 문법은 다음과 같습니다.
reduce(function, iterable)
- reduce에 들어가는 fuction은 인자가 2개여야 한다.
9. lambda
def로 함수를 정의 하지 않고 lambda 함수로 사용할 수 있다. 함수를 여러번 사용하지 않는 경우에 사용한다.
lambda arguments: expression
- lambda: lambda 키워드 - 이건 lambda 함수라는 의미입니다.
- arguments: 함수에 전달되는 파라미터를 의미합니다.
- expression: 함수의 반환 값에 해당하는 식을 의미합니다. - 즉 함수의 기능을 구현하는 부분입니다.
9.1 Lambda 함수의 특징
- 이름이 없습니다. 함수 자체를 변수에 할당하거나 다른 함수의 인수로 바로 사용 할 수 있습니다.
- 단 할 줄로 작성 할 수 있어 코드를 간결 하게 만들지만 다른 의미로는 여러 문장을 사용할 수 없다는 의미입니다.
- return 키워드를 사용할 수 없습니다. 따라서 lambda 함수의 표현식은 식(expression)이어야 합니다. 식은 값을 반환하는 문장을 의미합니다.
- 디버깅이 어려운 단점이 있습니다.
- map, filter 등의 함수와 함께 사용하여 코드를 간결하게 만들 수 있습니다
9.2 lambda함수 예제
댓글