반응형
# 라이브러리란?
- 특정 기능을 수행하기 위해 여러 데이터(함수, 클래스, 모듈 등)들을 모아놓은 집합
- 프로그래밍에서는 주로 소스코드의 집합으로 이해하면 쉬움
# 라이브러리의 장점
- 누구나 쉽게 사용 가능
- 직접 코딩해야 하는 불편함 감소, 코딩의 편의성 상승
- 코드의 간결화
- 코딩시 소비되는 시간 단축
# 라이브러리 사용 방법
- import 라이브러리명 (+as 단축어)
- = from 라이브러리명 import 함수명
#라이브러리의 사용 예시로 표준 모듈의 random과 date/time을 이용해보자.
# 표준 모듈 random을 이용한 난수 생성하기
- random 모듈 호출하기
- random 함수 이용시 반드시 random 모듈이 호출 된 상태여야 함
import random
# 표준모듈 random 호출
- random() : 0.0 ~ 1.0 사이의 난수 구하기
random.random()
>>> 0.629457285670085
# 0.0 ~ 1.0 사이의 난수 생성
- randint(a, b) : a부터 b까지의 정수의 난수 구하기
# 정수형 난수 얻기 int
random.randint(1,10)
>>> 8
# 매개변수 두 개 필요, 없으면 에러
# 정수 1 ~ 10 사이의 난수 생성
- uniform(a, b) : a부터 b까지의 실수의 난수 구하기
# 실수형 난수 얻기 float
random.uniform(1, 5)
>>> 4.779869962606982
# 매개변수 두개 필요, 없으면 에러, 실수형 출력
# 1 ~ 5 사이의 난수 생성
- seed(n) : 난수 값과 순서의 패턴을 똑같이 하고 싶을때 사용, n은 패턴의 번호로 이해하면 쉬움
- seed의 번호가 같으면 여러 번 난수를 생성하여도 출력되는 난수의 값과 순서가 같음
# seed 활용하여 난수의 결과값을 동일하게 출력해보기
random.seed(5) # 시드를 5로 설정
rand = []
for x in range(3):
rand.append(random.randint(1,6))
print(rand)
# 1 ~ 5 사이의 난수 3개 생성
>>> [5, 3, 6]
# 난수 재생성
random.seed(5) # 시드를 5로 설정
rand = []
for x in range(3):
rand.append(random.randint(1,6))
print(rand)
# 1 ~ 5 사이의 난수 3개 재생성
>>> [5, 3, 6]
# 시드가 같기때문에 난수를 재생성하여도 값과 순서가 같음을 확인
# 난수 다시 재생성
random.seed(10) # 시드를 10로 설정
rand = []
for x in range(3):
rand.append(random.randint(1,6))
print(rand)
>>> [5, 1, 4]
# 시드가 달라지면 결과 값이 다름
- normalvariate(평균, 편차) : 정규분포에 해당하는 난수를 생성
normal_variate = [] # 정규분포를 저장할 리스트 생성
for i in range(5):
value = random.normalvariate(170, 10)
normal_variate.append(value)
# 10개의 난수를 생성하고 저장
# 평균은 170, 편차는 10
>>>
[170.2125529540451,
170.98236854104923,
162.66128677108964,
173.18035910257234,
169.91882297374545]
- choice(a) : a(리스트나 집합 등)의 저장된 값 임의 선택
noodle_list = ["신라면", "너구리", "왕뚜껑"]
random.choice(noodle_list)
# 리스트에 저장된 값들의 임의선택
>>> '왕뚜껑'
- sample(a, n) : a의 저장된 값 n개 임의 선택
noodle_list = ["신라면", "너구리", "왕뚜껑"]
random.sample(noodle_list,2)
# 리스트에 저장된 값들의 n개 값 임의선택
>>> ['왕뚜껑', '너구리']
- shuffle(a) : a의 저장된 값을 임의로 순서를 변경 (원본 값 순서가 변함)
noodle_list = ["신라면", "너구리", "왕뚜껑"]
random.shuffle(noodle_list)
noddle_list
# 데이터들의 순서를 랜덤으로 섞어서 출력
>>> ['너구리', '신라면', '왕뚜껑']
- 원본 값 변경 없이 셔플 된 리스트를 얻어오려면? (no shuffle)
noodle_list = ["신라면", "너구리", "왕뚜껑"]
random.sample(noodle_list,len(noodle_list))
# 임의선택을 전체로 적용
>>> ['신라면', '왕뚜껑', '너구리']
반응형