이전 포스팅에서 random 모듈 내의 메서드를 간략히만 짚고 넘어갔었다. 하지만 choice, randrange, randint, sample, suffle 등 현업에서 많이 쓰이는 메서드를 더 공부하고 넘어가려고 한다. 해당 모듈을 사용하기 위해 import해주는 것은 필수이다.
1 choice()
리스트 형태, 튜플 형태, 딕셔너리 형태의 자료형에서 선언한 데이터 값을 random하게 골라 한개 반환한다.
range() 함수와 겹쳐서 사용가능하다. (해당범위 내의 값을 반환)
딕셔너리 형태의 경우 key값이 정수여야하고 0부터 순차적으로 증가해야만 한다.
choice([데이터1,데이터2,...])
choice((데이터1,데이터2,...))
choice(range(값))
# 리스트 형태
>>> choice([1,2,3,4,5,6,7])
4
>>> choice([1,2,3,4,5,6,7])
5
>>> choice([1,2,3,4,5,6,7])
3
>>> choice(['python','java','c','c++','Xython'])
'c++'
>>> choice(['python','java','c','c++','Xython'])
'python'
>>> choice(['python','java','c','c++','Xython'])
'Xython'
# range()
>>> choice(range(5))
2
#튜플형태
>>> choice((1,25,6,7))
6
>>> choice(("python","java","c++"))
'c++'
# 딕셔너리 형태 : key값이 정수여야하고 0부터 순차적으로 증가
>>> choice({1:"nana",2:"papa",3:"baba"})
'nana'
>>> choice({0:"nana",1:"papa",3:"baba"})
'baba'
>>> choice({1:"nana",8:"papa",3:"baba"})
Traceback (most recent call last):
File "<pyshell#26>", line 1, in <module>
choice({1:"nana",8:"papa",3:"baba"})
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\random.py", line 347, in choice
return seq[self._randbelow(len(seq))]
KeyError: 0
2 randrange()
시작수 이상, 끝수 미만의 임의의 정수를 반환할 경우 값을 2개 입력한다. 또 0부터 시작할 경우 끝수 1개만 입력해 주어도 된다. 그리고 시작수이상 끝수미만의 n의배수를 반환할 경우 값을 3개 입력해준다.
randrange(시작수, 끝수)
randrange(끝수)
randrange(시작수, 끝수, 배수)
randrange(시작수,끝수) : 시작수 이상 끝수 미만의 임의의 정수 반환
>>> randrange(0,10)
4
>>> randrange(0,10)
3
>>> randrange(0,10)
7
randrange(끝수) : 0 이상 끝수 미만의 임의의 정수 반환
>>> randrange(3)
2
randrange(0,10,2) : 0이상 10 미만의 2의 배수를 반환
>>> randrange(0,10,2)
8
>>> randrange(0,10,2)
2
>>> randrange(0,10,2)
0
>>> randrange(0,10,2)
6
3 randint()
시작수 이상 끝수 이하의 임의의 정수 반환한다.
randrange() 와 다른 점은 끝수가 포함된다는 것과 값을 하나만 입력할 수 없다는 것이다.
randint(시작수,끝수)
>>> randint(2,4)
4
>>> randint(2,4)
3
>>> randint(2,4)
2
>>> randint(4)
Traceback (most recent call last):
File "<pyshell#16>", line 1, in <module>
randint(4)
TypeError: randint() missing 1 required positional argument: 'b'
>>>
4 sample()
값들은 인자로 전달 받아서 임의의 값을 필요한 갯수만큼 리스트로 반환한다. 중복되는 값은 반환하지 않는다.
range()와 함께 사용하거나 리스트형태, 튜플형태만 반환이 가능하다.
sample(range(시작수,끝수),갯수)
sample([리스트])
sample((튜플))
>>> sample(range(1,46),6)
[42, 41, 37, 45, 3, 2]
>>> sample([1,2,3,4,5],3)
[1, 4, 3]
>>> sample((1,2,3,4,5),2)
[2, 5]
5 shuffle()
'Python' 카테고리의 다른 글
[Python 기초] 파이썬 - 쓰레드 (Thread) (0) | 2021.04.08 |
---|---|
[Python 기초] 파이썬 자료형 - 집합(set) (0) | 2021.04.08 |
[Python 기초] 파이썬 클래스 - 클래스 멤버(static) 와 접근제어자(public , private , getter , setter) (0) | 2021.04.05 |
[Python 기초] 파이썬 클래스 - 오버라이딩 (overriding) (0) | 2021.04.05 |
[Python 기초] 파이썬 파일 다루기 - pickle 모듈 (dump, load) 와 with 으로 파일 닫기 (0) | 2021.04.05 |
댓글