흰둥이는 코드를 짤 때 짖어 (왈!왈!왈!왈!왈!왈!왈!왈!왈!왈!왈!)

(파이썬, 과제) 기초 문제 2 본문

과제

(파이썬, 과제) 기초 문제 2

흰둥아솜사탕 2023. 3. 10. 16:14
728x90
반응형

2. 과제

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

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

while True:
  myNum = int(input('주사위 값을 입력하세요: '))
  comNum = random.randrange(1, 7)
  print(f'주사위의 값 : {comNum}, ', end='')
  if myNum == comNum:
    print('맞았습니다.게임을 종료합니다.')
    break
  print('틀렸습니다!')
주사위 값을 입력하세요: 4
주사위의 값 : 3, 틀렸습니다!
주사위 값을 입력하세요: 3
주사위의 값 : 1, 틀렸습니다!
주사위 값을 입력하세요: 2
주사위의 값 : 4, 틀렸습니다!
주사위 값을 입력하세요: 1
주사위의 값 : 3, 틀렸습니다!
주사위 값을 입력하세요: 1
주사위의 값 : 3, 틀렸습니다!
주사위 값을 입력하세요: 3
주사위의 값 : 3, 맞았습니다.게임을 종료합니다.

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

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


li = ['가위', '바위', '보']
while True:
  me = input('가위, 바위, 보 중 하나를 선택하세요: ')
  me = li.index(me)
  com = random.randrange(0, 3)

  print(f'컴퓨터: {li[com]}, 나: {li[me]} -> ', end='')
  if me - com == -2 or me - com == 1:
    print('이겼습니다!!!!!게임을 종료합니다.')
    break
  elif me - com == 2 or me - com == -1:
    print('졌습니다.')
  else:
    print('비겼습니다.')
가위, 바위, 보 중 하나를 선택하세요: 가위
컴퓨터: 가위, 나: 가위 -> 비겼습니다.
가위, 바위, 보 중 하나를 선택하세요: 바위
컴퓨터: 보, 나: 바위 -> 졌습니다.
가위, 바위, 보 중 하나를 선택하세요: 보
컴퓨터: 보, 나: 보 -> 비겼습니다.
가위, 바위, 보 중 하나를 선택하세요: 가위
컴퓨터: 가위, 나: 가위 -> 비겼습니다.
가위, 바위, 보 중 하나를 선택하세요: 바위
컴퓨터: 바위, 나: 바위 -> 비겼습니다.
가위, 바위, 보 중 하나를 선택하세요: 보
컴퓨터: 바위, 나: 보 -> 이겼습니다!!!!!게임을 종료합니다.

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

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

lotto = []
check = 0

while check != 6:
  num = random.randrange(1, 46)
  if lotto.count(num):
    print('중복')
  else:
    check += 1
    lotto.append(num)

lotto.sort()
print(lotto)
중복
[6, 8, 30, 37, 39, 40]

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 (주민등록번호의 마지막 자리와 일치하면 맞는 주민등록번호임)
li = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5]

num = list(map(int, input('주민번호를 - 없이 입력하세요: ')))
check = 0

for i in range(12):
  check += num[i] * li[i]

check = 11 - (check % 11)

if check == 11 or check == 10:
  check = check % 10

if check == num[12]:
  print('옳바른 주민번호 입니다.')
else:
  print('주민번호를 다시 확인하세요.')
주민번호를 - 없이 입력하세요: 0010113068518
옳바른 주민번호 입니다.
728x90
반응형
Comments