프로그래밍
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는 더 짦게 할 수 있을것같으니까 다시 풀어보기