12주차 수 1108 (라이브러리)
자료구조
자료들을 저장하는 여러 가지 구조들을 자료구조(data structure), 또는 데이터구조라 부른다
자료구조
┌───────┌───── │─────┐───────┐
수지형 딕셔너리 부울형 세트 시퀀스
┌─────── │────────┐ ┌────── │───────┐
정수형 부동소수점형 복소수형 문자열 리스트 튜플
시퀀스(sequence)
요소(element)로 구성
요소 간에는 순서가 있다.
시퀀스의 요소들은 번호가 붙어져 있다.
내장 시퀀스(str, bytes, byrearray, list, tuple, range)
( 0.1 + 0.2 ) == 0.3
False
0.1 + 0.2
0.30000000000000004
동일한 연산을 지원
인덱싱(indexing), 슬라이싱, 덧셈 연산, 곱셈 연산
내장함수 적용가능 : 시퀀스의 길이를 반환하는 len() 함수, 최대값과 최소값을 찾는 max(), min() 함수
튜플 패킹
t = ('apple', 'banana', 'grape')
파이썬 인터프리터가 자동으로 패킹을 해준다.
튜플 언패킹
(s1, s2, s3) = t
enumerate() 사용하기
시퀀스형 데이터에서 인덱스와 엘리먼트를 같이 꺼내준다.
fruits = [ "apple",":banana","grape"]
for index, value in enumerate(fruits):
print(index, value)
## 파이썬 site packages 설치 경로 알아보기
터미널 python -m site --user-site
(base) PS C:\Users\user\python_basic> python -m site --user-site
C:\Users\user\AppData\Roaming\Python\Python311\site-packages
(base) PS C:\Users\user\python_basic>
라이브러리
- 다른 사람들이 만들어 둔 함수들의 모음.
- 자주 사용하는 기능을 쉽게 재사용할 수 있고 다른 사람과도 공유…
- 표준 라이브러리 : 파이썬이 설치 될 떄 자동으로 설치 되는 라이브러리
- 외부 라이브러리 : 기본 외에 별도로 설치해서 사용하는 라이브러리
- 외부 라이브러리 설치 : pip install 라이브러리 명, conda install 라이브러리 명
- 사용법 : import 라이브러리 명
! conda list numpy
# packages in environment at C:\Users\user\anaconda3:
#
# Name Version Build Channel
numpy 1.24.3 py311hdab7c0b_1
numpy-base 1.24.3 py311hd01c5d8_1
numpydoc 1.5.0 py311haa95532_0
!conda install numpy -y
from datetime import datetime
from pytz import timezone
from datetime import timedelta
print(datetime.now()) # 현재 날짜 시간 가져옴
2023-11-08 15:26:23.035182
print(datetime.now(timezone('UTC'))) # 타임존 기준 현재 날짜 시간 가져옴
2023-11-08 06:26:23.256839+00:00
x = datetime.now(timezone('Asia/Seoul'))
print(type(x))
<class 'datetime.datetime'>
print(x.year, x.month, x.day, x.hour, x.minute, x.second, x.microsecond)
2023 11 8 15 29 1 712735
print(x.date(), x.time())
2023-11-08 15:29:01.712735
print(x.weekday())
2
0 1 2 3... 6
월화수목....일
x.strftime('%Y년%m월%d일')
'2023년11월08일'
파이썬은 help를 이용해서 어떻게 써야할지 알아볼 수 있다.
help('datetime.datetime.strftime')
Help on method_descriptor in datetime.datetime:
datetime.datetime.strftime = strftime(...)
format -> strftime() style string.
x.strftime('%Y/%m/%d/')
'2023/11/08/'
x = datetime.strptime('2023-11-07', '%Y-%m-%d')
x.month
11
x = datetime.strptime('2023년11월07일', '%Y년-%m월-%d일')
x.day
8
print(x - timedelta(days=9))
2023-10-30 15:29:01.712735+09:00
9일 빼기
from dateutil.relativedelta import relativedelta
조금 더 정확한 라이브러리
print(x - relativedelta(months=2))
2023-09-08 15:29:01.712735+09:00
2개월 뺴기
print(x +relativedelta(years=2))
2025-11-08 15:29:01.712735+09:00
2년 더하기
import math
math.pi
3.141592653589793