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에서 셈
반응형