티스토리 뷰
python의 random함수를 통해 랜덤 숫자 생성(로또 번호를 생성하는 프로그램)을 자주 사용하게 되어
python의 random함수에 대해 정리하게 되었습니다.
random 모듈은 난수 발생 모듈로 랜덤으로 숫자를 생성하여 줍니다.
random 모듈에는 다양한 랜덤 함수를 지니고 있습니다.
python이용자는 random 모듈을 실행하여 자신의 필요에 따라 여러 랜덤 함수를 골라 사
용할 수 있습니다.
1. random 함수
* 저는 현재 python3.8버전을 사용하고 있기 때문에 포스팅한 random함수는 python3.8버전이라는 것을 알립니다.
random함수는 랜덤 숫자의 범위에 따라 나뉩니다.
- random 함수 : random.random()
random.random() 함수는 0.0이상 1.0미만의 실수(float)를 발생시킵니다.
즉, 결과값의 범위는 0.0 <= random.random() < 1.0 이라고 할 수 있습니다.
random 함수는 이미 범위가 정해져 있기 때문에 매개변수를 넣지 않습니다.
아래의 예제처럼 random.random()의 실행 결과, 0.0과 1.0사이의 결과값이 나옵니다.
EX.
num1 = random.random()
print(num)
>>> 0.5646860971038955
- uniform 함수 : random.uniform(a, b)
random.uniform(a, b) 함수는 a와 b 사이의 실수(float)를 발생시킵니다.
즉, 결과값의 범위는 a <= random.uniform(a, b) <= b 라고 할 수 있습니다.
EX.
num2 = random.uniform(1,2)
print(num2)
>>> 1.3407767180297003
- randint 함수 : random.randint(a, b)
random.randint(a, b) 함수는 a와 b 사이의 정수(int : integer)를 발생시킵니다.
즉, 결과값의 범위는 a <= random.randint(a, b) <= b 라고 할 수 있습니다.
결과값의 범위로만 보면 random.uniform과 같은데, random.randint는 실수가 아닌 정수만을
도출한다는 점에서 차이가 있습니다.
EX.
num3 = random.randint(1,2)
print(num3)
>>>1 또는 2
- randrange 함수 : random.randrange( )
randrange 함수는 매개변수를 1개 또는 2개를 넣을 수 있습니다.
1. random.randrange(a, b)
random.randrange(a, b) 함수는 2개의 매개변수를 통해 a이상 b미만의
범위에 있는 정수(int)를 발생시킵니다.
즉, 결과값의 범위는 a <= random.randrange(a, b) < b 인 정수입니다.
2. random.randrange(b)
random.randrange(b) 함수는 1개의 매개변수를 가지며, 0이상 b미만의
범위에 있는 정수(int)를 발생시킵니다.
즉, 결과값의 범위는 0 <= random.randrange(a, b) < b 인 정수입니다.
EX.
num4 = random.randrange(20, 30)
print(num4)
>>> 20<= num4 <= 30 의 결과값이 나온다.
num5 = random.randrange(30)
print(num5)
>>> 0<= num5 <= 30 의 결과값이 나온다.
- choice 함수 : random.choice(Seq)
random.choice(seq) 함수는 매개변수로 시퀀스(sequence) 데이터 타입을 받습니다.
시퀀스(seq) 데이터 타입은 문자열(string), 튜플(tuple), 리스트(list), range()가 있습니다.
choice 함수는 인자로 받은 문자열, 튜플, 리스트 등의 데이터에서 랜덤으로 하나의 원소를 발생시킵니다.
EX.
저는 예제에서 문자열을 매개변수로 주어 결과를 도출하였습니다.
string1 = random.choice("안녕하세요")
print(string1)
>>> 하
- sample 함수 : random.sample(seq or set, N)
random.sample 함수는 2개의 매개변수를 받습니다.
첫 번째의 매개변수로 시퀸스 데이터 타입 또는 set 타입을 받을 수 있습니다.
두 번째의 매개변수로 랜덤하게 뽑을 인자의 개수를 넣게 됩니다.
EX.
저는 예제에서 리스트형의 매개변수로 결과를 도출하였습니다.
list2 = random.sample([1,2,3,4], 2)
print(list2)
>>> [1,3]
d = [20, 30, 40, 50, 60]
list3 = random.sample(d, 3)
print(list3)
>>> [60, 30, 20]
위의 예제처럼 첫번째 매개변수의 데이터를 두번째 매개변수 N개만큼 결과로 발생시킨다.
이때, 결과값은 순서가 무질서하며, [ ] 리스트 형식으로 도출된다.
+ error발생
list3 = random.sample([1,2,3,4], 5)
print(list3)
valueError
첫번째 매개변수, 리스트의 인수는 4개이며, 두 번째 매개변수는 5로 설정하였다.
이처럼 첫 번째로 설정해준 seq, set의 인수 개수보다 두 번째 매개변수로 설정해준 N이 더 많을 때
'valueError'가 발생한다.
- shuffle 함수 : random.shuffle(seq)
random.shuffle(Seq) 함수는 데이터의 순서를 무작위로 바꾸어 주는 함수를 말한다.
매개변수로 시퀀스 데이터 타입이 들어가는데, shuffle 함수는 데이터를 무작위로 바꾸기 때문에
내부 인자를 변경할 수 있는 리스트만 가능하며, 결과는 리스트 형식으로 발생한다.
shuffle 함수의 사용방식은 다른 random함수와 다르다.
EX.
잘못된 방법
shuffle1 = random.shuffle([1,2,3,4,5])
print(shuffle1)
>>> None
위의 예제처럼 다른 random함수와 같은 방식은 'None'이라는 결과만 도출한다.
shuffle함수 사용방법은 아래의 예제와 같다.
s = [1, 2, 3, 4, 5, 6]
random.shuffle(s) #여기서 변수s의 데이터를 무작위로 순서를 변화시킴.
print(s) #결과 도출
>>> [3, 4, 6, 5, 1, 2]
2. random 함수 실행하기.
import random
import random
: 랜덤 함수를 사용하기 위해서는 랜덤 함수를 내포하고 있는 랜덤 모듈을 임포트해주어야한다.
저는 idle로 실행했습니다.
- 과정
- 결과
'Python' 카테고리의 다른 글
[python] 파이썬 : split 함수와 strip함수 (0) | 2022.01.29 |
---|---|
[python] 터틀 그래픽 : Turtle Graphic (0) | 2022.01.22 |
[python] 파이썬 출력 : end = '', sep = '' (0) | 2022.01.10 |
- Total
- Today
- Yesterday
- 터틀그래픽
- YOLO
- 백준
- 다인승탑승
- 터틀그래픽 명령어
- 문제풀이
- 10828번
- randint
- randrange
- yolov8
- Kkma
- 오븐시계
- 사람수세기
- 다인승
- JAVA오류해결
- 터틀그래픽예제
- streamlistener
- gradleload오류
- tweepy
- SPRING오류해결
- 사람검출
- 파이썬
- springboot
- Turtle Graphic
- database연결
- UnsupportedClassVersionError
- konlpy
- 에러발생
- baekjoon
- python공부
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |