프로그래밍

day6 랜덤모듈 문제

니니는 진짜 전설이다 2023. 3. 10. 17:42

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

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

(반복문, 무한루프, 맞추면 빠져나오기)

# 2-1 문풀

import random
while True:
    dice= random.randrange(1,7)
    num = int(input('주사위의 값을 입력하세요: '))
    if num == dice:
        print(f'주사위의 값: {dice}, 맞았습니다. 프로그램을 종료합니다')
        break
    else:
      print(f'주사위의 값:{dice}, 틀렸습니다')

 

 

 

2-2. 가위바위보 게임을 만들어보자.

  • 가위 바위 보 중 하나를 선택하세요: 가위
  • 컴퓨터: 바위, 나: 가위 -> 졌습니다
  • 가위 바위 보 중 하나를 선택하세요: 가위
  • 컴퓨터: 가위, 나: 가위 -> 비겼습니다
  • 가위 바위 보 중 하나를 선택하세요: 가위
  • 컴퓨터: 보, 나: 가위 -> 이겼습니다! 게임을 종료합니다
# 2-2 문풀

import random
babo = ['가위', '바위', '보']
while True:
    rcp = random.choice(babo)
    you = input('가위, 바위, 보 중 하나를 선택하세요: ')
    if you == rcp:
        print(f'컴퓨터:{rcp}, 나:{you} -> 비겼습니다')
    elif (you == '가위'and rcp == '바위') or (you == '바위' and rcp == '보') or (you == '보' and rcp == '가위'):
        print(f'컴퓨터:{rcp}, 나:{you} -> 졌습니다')
    else:
        print(f'컴퓨터:{rcp}, 나:{you} -> 이겼습니다! 게임을 종료합니다')
        break

 

 

2-3. 로또번호 예상 프로그램을 만들어보자.

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

import random
li = []

while len(li) < 6:
    num = random.randrange(1, 46)
    if num not in li:
      li.append(num)
      

print(li)

 

 

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

  • 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 (주민등록번호의 마지막 자리와 일치하면 맞는 주민등록번호임)
# 2-4 문풀

li = []
jnum = input('주민번호를 "-" 없이 입력하세요: ')
for i in jnum:
    li.append(i)

i = 0
mul = []
while i < 8:
    num = int(li[i])* (i+2) 
    mul.append(num)
    i += 1
j = 2
while i < 12:
    num = int(li[i])*j
    mul.append(num)
    i += 1
    j += 1

sum = 0
for i in mul:
    sum += int(i)

left = sum % 11

if left >= 10:
    left = left % 10

print(11 - left)

** 2-4는 더 짦게 할 수 있을것같으니까 다시 풀어보기