일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 카카오코테
- 프로그래머스
- 알고리즘
- 정보처리기사
- 스터디
- select
- 오블완
- join
- 안드로이드스튜디오
- 정처기
- Android
- SQL
- 인프런
- CS
- java
- 혼공챌린지
- groupby
- Kotlin
- 코테
- Til
- 자바
- 혼공단
- doitandroid
- 티스토리챌린지
- 코틀린
- MySQL
- 혼공파
- 기술면접
- 자료구조
- 안드로이드
- Today
- Total
Welcome! Everything is fine.
[4주차] Python 100 문제풀이 Part.3 - 모듈 본문
💡 모듈
모듈이란?
모듈이란 관련된 변수와 함수를 모아놓은 하나의 프로그램 상자라고 생각하면 된다. 파이썬에 기본적으로 내장되어있는 모듈을 사용하여 여러가지 기능을 사용할 수 있다. 각기 다른 모듈을 부품삼아 하나의 프로그램을 만들 수 있는 것이다. sys 모듈, os 모듈, math 모듈, calendar 모듈, tkinter 모듈, random 모듈 등 수많은 모듈이 존재한다. 이러한 모듈 안에 어떤 것이 있는지 알고 싶다면 아래와 같이 적어주면 된다.
import random
dir random
모듈을 import 하는 방법에는 두 가지가 있다. 첫 번째는 모듈 전체를 가져오는 방법으로 아래와 같이 작성한다.
import random
두 번째는 필요한 모듈만 가져오는 방법으로 아래와 같이 작성한다.
from random import randint
random 모듈 사용법
random 모듈을 import하고 random.함수명()을 사용하면 모듈내 여러 유용한 함수를 사용할 수 있다. 다음은 random 모듈의 함수 중 내가 찾은 일부다.
✔ random.random() : 0.0 이상 1.0 미만의 실수를 랜덤으로 반환한다.
✔random.randint(a, b) : a와 b사이의 정수를 랜덤으로 반환한다. (b 포함)
✔random.randrange(a, b) : a이상 b미만의 정수를 랜덤으로 반환한다. (b 포함하지 않음)
✔random.choice() : 랜덤으로 하나의 요소를 선택하여 반환한다. 매개변수로 시퀀스 자료형을 받는다.(리스트, 튜플, range, 문자열..)
✔random.shuffle() : 원소의 배열 순서를 랜덤으로 섞는다. 내부 인자를 변경할 수 있는 '리스트'만 가능하다.
✔ random.sample() : 범위는 시퀀스 자료형을 사용하여 지정하고, 두 번째 인자는 난수의 갯수를 정한다. 리스트를 출력하며, 중복된 값이 나오지 않는다.
✔ random.uniform(a, b) : a와 b사이의 실수를 반환한다. (b 포함)
✔ random.triangular(low, high) : low와 high사이의 실수중 중앙값이 자주 나오도록 한다.
❔ 정수 5개를 원소로 갖는 리스트를 매번 프로그램을 실행할 때 마다 다른 난수로 지정하여 만드시오.
나는 random.sample() 함수를 몰랐기 때문에 반복문과 random.randint() 함수를 이용하여 빈 리스트에 하나식 추가하는 방법을 사용했다.
## 나의 풀이 ##
import random
# 랜덤 정수 출력
int_random = random.randint(1, 10)
print("랜덤 정수 : ", int_random, type(int_random))
#랜덤 리스트 출력
int_list = []
for i in range(5):
int_list.append(random.randint(1, 10))
print("랜덤 정수 리스트 : ", int_list, type(int_list))
강의에 나온대로 random.sample() 함수를 이용하니 좀 더 짧은 코드로 작성할 수 있었다. 또한 바로 리스트로 반환되며, 중복을 피할 수 있다는 장점이 있었다.
## 강의 풀이 ##
import random
# 랜덤 정수 출력
int_random = random.randint(1, 10)
print("랜덤 정수 : ", int_random, type(int_random))
#랜덤 리스트 출력
int_list = random.sample(range(1,10),5)
print("랜덤 정수 리스트 : ", int_list, type(int_list))
❔ 임의의 정수를 난수로 생성하는 코드에서 틀린 부분을 찾아 설명해보시오.
a = random.randint(1, 10)
print(a)
b = random.sample(range(1, 10), 10)
print(b)
c = random.sample([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10)
print(c)
d = random.sample((1, 2, 3, 4, 5, 6, 7, 8, 9, 10), 10)
print(d)
✔ 틀린 부분은 b 부분이다. 두 번째 인자가 10인데 첫 번째 인자는 1에서 9까지의 정수를 담고 있다. 두 번째 인자가 첫 번째 인자의 수를 초과하게 되면 valueError가 발생한다. b = random.sample(range(1, 11), 10) 로 고쳐주어야한다.
❔ 아래 코드에서 틀린 부분을 찾아서 설명해보시오.
import random
a = random.choice(input(""))
print('[1]', a)
b = random.choice(range(1,10))
print('[2]', b)
c = random.choice(['k', 'o', 'r', 'e', 'a', '', 'K', 'O', 'R', 'E', 'A'])
print('[3]', c)
d = random.choice([]) # Error, 빈 리스트를 받을 순 없다.
print(d)
✔ ramdom.choice() 함수는 리스트, 튜플, range, 문자열 등의 시퀀스 자료형을 받아서 랜덤으로 하나의 요소를 뽑아 반환한다. 그러나 빈 리스트를 매개변수로 받을 수는 없다.
'자격증 및 기타 활동 > 여름방학 스터디(Python)' 카테고리의 다른 글
[5주차] Python 100 문제풀이 Part.3 - 알고리즘, 문자열 (0) | 2021.08.05 |
---|---|
[3주차] Python 100 문제풀이 Part.3 - OOP (0) | 2021.07.22 |
[2주차] Python 100 문제풀이 Part.2 - 함수 (0) | 2021.07.15 |
[1주차] Python 100 문제풀이 Part.2 - 배열 (0) | 2021.07.07 |