KDT/Python

랜덤 모듈

jhwannabe 2023. 3. 9. 15:57

https://github.com/JHWannabe/KDT/blob/master/jhwannabe/python/Day05/15_Random_Module.ipynb

 

1. 랜덤(random) 모듈

  • 임의의 숫자를 무작위로 반환

random()

  • 0이상 1미만의 실수 중에서 무작위로 하나를 뽑아 반환
import random

num = random.random()
print(num) # 0.7639029319659469
num = num * 10
print(num) # 7.639029319659469
num = int(num) # 0~9까지 정수
print(num) # 7
num = int(num + 1) # 1~10까지 정수
print(num) # 8
# 1~10까지 정수
num = int(random.random() * 10 + 1)
print(num) # 7

randrange()

  • 원하는 범위를 입력하여 범위의 무작위 정수를 반환
random.randrange(1, 46) # 23

shuffle()

  • 자료구조에 저장된 값을 무작위로 섞음
  • inplace 연산
li = ['김사과','반하나','오랜지','이메론','채애리']
random.shuffle(li)
li

# ['오랜지', '이메론', '채애리', '김사과', '반하나']

choice()

  • 자료구조에 저장된 값 중 하나를 무작위로 반환
li = ['김사과','반하나','오랜지','이메론','채애리']
random.choice(li)
# '반하나'

bool1 = [True, False]
random.choice(bool1)
# False

2. 과제

주사위를 던져 주사위의 값을 맞추는 게임을 만들어보자.

  • 주사위의 값을 입력하세요: 4
  • 주사위의 값: 3, 틀렸습니다.
  • 주사위의 값을 입력하세요: 3
  • 주사위의 값: 6, 틀렸습니다.
  • 주사위의 값을 입력하세요: 2
  • 주사위의 값: 2, 맞았습니다. 게임을 종료합니다.

 

'가위바위보' 게임을 만들어보자

가위, 바위, 보 중 하나를 선택하세요: 가위
컴퓨터 : 바위, 나: 가위 -> 졌습니다.

가위, 바위, 보 중 하나를 선택하세요: 가위
컴퓨터 : 가위, 나: 가위 -> 비겼습니다.

가위, 바위, 보 중 하나를 선택하세요: 가위
컴퓨터 : 보, 나: 가위 -> 이겼습니다.

 

로또 번호 예상 프로그램을 만들어보자

  • 조건
    • 1~45까지 6개의 숫자를 무작위로 추출
    • 중복되면 안됨
    • 오름차순으로 정렬
    • 보너스 숫자는 생각하지 않음

 

주민등록번호 유효성 검사 프로그램을 만들어보자

  • 001011-3068518
  • 0 0 1 0 1 1 3 0 6 8 5 1 8 (마지막 자리는 잠시 빼둠)
  • 2 3 4 5 6 7 8 9 2 3 4 5 (숫자를 각 자리에 곱함)
  • 0 0 4 0 6 7 24 0 12 24 20 5 (숫자를 모두 더함)
  • 102 % 11 (11로 나눈 나머지 값)
  • 11 - 3 (해당 값을 11에서 뺌, 단 값이 2자리인 경우 10으로 나눈 나머지 값을 구함)
  • 8 (주민등록번호의 마지막 자리와 일치하면 맞는 주민등록번호임)
728x90