Language/Python

[ Python ] 랜덤 혈액형 개수 맞추기 프로그램

곽수진 2021. 9. 26. 19:02
반응형
key로 번호, value로 혈액형을 갖는 혈액형 정보 딕셔너리를 만든 후 키보드로 혈액형을 입력받고 혈액형의 개수가 총 몇개인지 출력하는 프로그램을 작성해보자.

번호의 형태는 emp로 시작하는 문자열(emp1, emp2, ...)로 저장되며, 혈액형은 A, B, O, AB 중 하나임

key의 개수는 랜덤(30~50)으로 결정되며 혈액형을 잘못 입력하면 다시 입력하도록 안내함

 

import random
blood = ['A', 'B', 'O', 'AB']
def make_blood_info(empb, empn):
    for i in range(empn):
        empb['emp'+str(i+1)] = random.choice(blood)

def blood_count(empb):
    b_list = list(empb.values())
    print(b_list)
    while True:
        b = input("혈액형을 입력하세요: ")
        if b in blood:
            break
        else:
            print("올바른 혈액형이 아닙니다. 다시 입력하세요: ")
    print("%s 혈액형을 가진 사람 수는 총 %s명입니다."%(b, b_list.count(b)))

emp_blood = {}
emp_num = random.randint(30, 50)
make_blood_info(emp_blood, emp_num)
print(emp_blood)
blood_count(emp_blood)

 

 

def make_blood_info(empb, empn):
    for i in range(empn):
        empb['emp'+str(i+1)] = random.choice(blood)

▶ make_blood_info 사용자 정의 함수를 생성함

▶ empn만큼 반복하는 반복문을 돌림

'emp'+str(i+1) : 0부터 empn-1 까지 i값에 저장되므로 문자열 emp 뒤에 1부터 empn까지 출력

▶ blood 딕셔너리에 저장된 값 중 랜덤으로 하나를 선택해 출력

 

def blood_count(empb):
    b_list = list(empb.values())
    print(b_list)
    while True:
        b = input("혈액형을 입력하세요: ")
        if b in blood:
            break
        else:
            print("올바른 혈액형이 아닙니다. 다시 입력하세요: ")
    print("%s 혈액형을 가진 사람 수는 총 %s명입니다."%(b, b_list.count(b)))

▶ blood_count 사용자 정의 함수를 생성함

empb의 value 값들을 리스트에 저장해 b_list 변수에 저장하고 출력함

▶ 사용자가 입력한 혈액형(b 변수에 저장됨)이 blood 리스트에 존재하면 break, 아닐 경우 다시 입력하도록 안내

b_list.count(b) : 사용자가 입력한 혈액형의 수를 b_list에서 셈

 

 

결과 출력 모습

반응형