random 예제 연습문제

Eunwoo Lee·2022년 7월 10일
0

random 모듈

ramdom 모듈에 대해서..

1.ramdom.ramdom()

0.0에서 부터 1.0 사이의 실수를 반환함.(0.0 <= x <1.0)

2.random.uniform(a,b)

a~b 사이의 실수를 반환함. (a <= x <= b)

3.randint(a, b)

a~b 사이의 정수를 반환함.
범위 주의할것..(a <= x <= b)

4.randrange(a, b) , randrange(b)

randrange(a, b) 는 a <= x < b 범위 내에서 랜덤한 정수를 반환
randrange(b) 는 0 <= x < b 범위 내에서 랜덤한 정수를 반환

5.random.choice(seq)

매개변수로 seq 타입을 받는다. seq(시퀀스 데이터 타입)은 문자열, 튜플, range, 리스트 타입을 뜻한다.

6.random.sample(seq or set , N)

첫번쨰 매개 변수로 시퀀스 데이터 타입 또는 set 타입을 받을수 있다.
두번쨰 매개 변수로는 랜덤하게 뽑을 인자의 개수
순서상관없이 인자를 뽑아서 리스트로 만들어서 반환해준다.

sample의 특징 2가지

  1. unique라는것이 중요합니다. 겹치지 않는 element를 반환한다는 것인데요
  2. 만약에 두번째 매개변수 N이 seq, set의 인자의 개수를 넘어갈때 valueError가 발생합니다. 
    출처: https://blockdmask.tistory.com/383 [개발자 지망생:티스토리]

7.random.shuffle(seq)

데이터의 순서를 무작위로 랜덤하게 바꾸어 주는 함수
리스트만 가능하다.

연습문제

로또 모듈을 만들고 다음과 같이 결과가 나오도록 만들어보자

로또 모듈

import random

def lotto(n1, n2, n3, n4, n5, n6):
    user_numbers = [n1, n2, n3, n4 , n5, n6]
    user_numbers.sort()
    numbers = random.sample(range(1, 46), 7)
    bonus_number = numbers[6]
    del numbers[6]
    numbers.sort()
same_numbers = []

i = 0 ; j = 0
for i in range(0, 6):
    for j in range(0 , 6):
        if user_numbers[i] == numbers[j]:
            same_numbers.append(user_numbers[i])
for i in range(0, 6):
    if user_numbers[i] == bonus_number:
        same_numbers.append(user_numbers[i])

for i in range(0, 6):
    if user_numbers[i] == bonus_number:
        bonus_same = 0
    else :  bonus_same = 1

if bonus_same == 0:
    if len(same_numbers) == 6: print('1등!!')
else :
    if len(same_numbers) == 6 : print('2등!!')
    elif len(same_numbers) == 5 : print('3등!!')
    elif len(same_numbers) == 4 : print('4등!!')
    elif len(same_numbers) == 3 : print('5등!!')
    else : print('꽝!!')

print(f'기계 번호 : {numbers}')
print(f'보너스 번호 : {bonus_number}')
print(f'선택 번호 : {user_numbers}')
print(f'일치 번호 : {same_numbers}')

실행 파일

import  modul48 as a
import  random

n1 = int(input('번호(1~45) 입력 : '))
n2 = int(input('번호(1~45) 입력 : '))
n3 = int(input('번호(1~45) 입력 : '))
n4 = int(input('번호(1~45) 입력 : '))
n5 = int(input('번호(1~45) 입력 : '))
n6 = int(input('번호(1~45) 입력 : '))

a.lotto(n1, n2, n3, n4, n5, n6)

0개의 댓글