작성
·
67
·
수정됨
0
(1) 요청사항
사용자로부터 주민등록번호를 입력받아, 성별을 '남성' 또는 '여성'으로 출력하세요.
주민등록번호 뒷자리 맨 앞자리는 성별을 나타냄
예) 800001-1231231 주민번호를 입력받으면 1을 출력하면 됨
1이면 남성, 2이면 여성을 출력하면 됨
(2) 입력코드
data = input()
if data[7] == '1':
print ("남성")
else:
print ("여성")
(3) 코드결과
800001-1231231
남성
입력코드에서 data[7]이면 '-'인데, 어떻게 코드 결과가 원활하게 나올 수 있는 걸까요?
요청사항을 충족하려면, 아래와 같은 코드를 입력해야 하는 거 아닌가요??
(4) 수정코드
data1 = input()
if data1.split("-")[1][0] == 1:
print ("남성")
else:
print ("여성")
예제로 주신 코드가 오류 없이 작동하는 점이 궁금해 질문드립니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
질문자님께서 제시하신 문제와 관련된, 사용자로부터 주민등록번호를 입력받아 성별을 판별하는 코드의 작동 방식에 대해 궁금하신 것으로 이해됩니다. 제공된 정보 중에서, 질문자님의 문제에 가장 직접적으로 해결책을 제공하는 내용은 아래와 같습니다.
질문자님의 경우, ‘주민등록번호 뒷자리 맨 앞의 숫자를 이용해 성별을 출력하는 코드’에 대한 의문이 있습니다. 질문자님께서 제시한 코드는 실제로 주민등록번호의 뒷자리 첫 번째 숫자를 분류하여 성별을 판별하는 올바른 접근 방식을 보여줍니다. 질문자님의 수정 코드에 대한 의문점은, 원본 코드(data[7] == '1'
)에서와 같이 “주민등록번호 중 성별을 나타내는 숫자가 정확히 어떻게 접근되어야 하는지”에 대한 것 같습니다.
이 경우 python-question2-web.ipynb. exercise19 답변
을 쓰는데요 질문의 답변에서, 주민등록번호 입력값을 처리하여 성별을 출력하는 방법에 대한 예를 들어 설명하고 있습니다. 입력 값에서 문자열을 적절히 처리하여 성별 정보를 추출하는 방식에 대한 설명이 포함되어 있으므로 관련 내용을 참고하시면 도움이 될 것입니다.
질문하신 문제에 대해, 원본 코드 작동방식의 오류 없이 작동하는 조건은 입력 형식이 특정 예제와 같이 정확한 포맷(하이픈을 포함한 주민등록번호)으로 되어있을 때를 가정하는 것입니다. 질문자님의 “수정 코드”는 일반적인 사용자 입력에 더 강건한 코드인 것으로 보여지며, 실제 상황에 맞게 접근하신 것은 매우 적절합니다.
단, 입력 코드에서 data[7] == '1'
이 성공적으로 ‘남성’을 출력한 경우 해당 코드는 파이썬의 인덱싱 기능을 이용해 특정 위치의 문자를 참조하고 있는 것입니다. 주민등록번호 전체가 아닌 뒷자리 첫 번째 숫자를 차지하고 있는 위치에 접근하는 것이므로, 코드의 동작은 입력된 주민등록번호 포맷에 따라 달라질 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.