더북(TheBook)

코드를 한 문장씩 풀어 보면 다음과 같습니다.

표 3-10 코드의 의미

코드

의미

random() * 10

0.0 이상 10.0 미만에서 난수 생성

int(random() * 10)

0 이상 10 미만 정수에서 난수 생성(random() 결과를 int()로 감싸서 정수로 변환)

int(random() * 10) + 1

1 이상 11 미만 정수에서 난수 생성(random() 결과를 정수로 변환해 1을 더함)

예를 들어, 1부터 45까지 정수 범위 안에서 로또 번호를 뽑으려면 다음처럼 작성합니다. random() 함수로 생성한 난수에 45를 곱해 0.0 이상 45.0 미만인 난수를 생성합니다. 그리고 이를 int()로 감싸서 정수로 변환하고 여기에 1을 더합니다. 그러면 1 이상 46 미만인 정수에서 난수를 생성합니다.

print(int(random() * 45) + 1)

실행결과 icon_con

  17

그런데 범위를 매번 계산하려면 머리가 조금 아프겠죠? 고맙게도 random 모듈에는 원하는 범위 안에서 난수를 뽑을 수 있는 함수들이 있습니다.

표 3-11 random 모듈의 함수

함수

의미

randrange(시작 숫자, 끝 숫자)

주어진 범위 안에서 정수인 난수 생성(끝 숫자 미포함)

randint(시작 숫자, 끝 숫자)

주어진 범위 안에서 정수인 난수 생성(끝 숫자 포함)

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.