본문 바로가기
프로그램

[파이썬] 문제 : 입력 받은 문자열을 분리해서 데이터 만들기

by 오디세이99 2023. 11. 5.
728x90
반응형

# M15 / M45 / M60 / F15 / F55 / F60
tmp = input('입력:').split('/')                    # 문자열(위 참고) 입력 받고 '/'으로 분리해서 리스트 출력
tmp = [tmp[i].strip() for i in range(len(tmp))]   # 문자에 공백이 있기 때문에 공백 제거

dic = {'M':[0,0], 'F':[0,0]}      # 결과를 만들 데이터 형식 선언. 딕셔너리. M,F를 키로해서 [0,0]는 50이하, 이상 수
for i in range(len(tmp)):        # 입력 받은 문자열 수 만큼 반복
    gender = tmp[i][0]            # M15와 같은 문자열에서 인덱스 0은 'M'이 됨
    weight = int((tmp[i][1:]).strip())  # M15와 같은 문자열에서 인덱스 [1:]는 1부터 끝까지로 15가 됨. 정수로 변환
    if weight < 50:                     # 몸무게가 50KG 이하면
        dic[gender][0] += 1             # gender=M이 되고, [0,0]에서 0인덱스에 +1
    else:                               # 몸무게가 50KG 이상이면
        dic[gender][1] += 1             # gender=M이 되거 [0,0]에서 1인덱스에 +1
        
for g in ['M','F']:                     # g에 M과 F가 나오게 됨
    for w in range(2):                  # w에 0, 1 가 나오게 됨. 이것으로 [0,0]에서 인덱스 0과 1 을 지정할 수 있음
        print(f"50KG이하 {'수컷' if g=='M' else '암컷'} 동물 : {dic[g][w]}")  # 출력. if문은 M, F에 따라 수컷,암컷 출력

728x90
반응형

댓글