인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

rebirthaz님의 프로필 이미지
rebirthaz

작성한 질문수

파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)

문제를 풀며 가장 자연스럽게 익숙해지는 파이썬 기본: 문자열,리스트,조건문 활용1

python-question2-web.ipynb. exercise19 답변을 쓰는데요. 해당 코딩지문이 왜 안되는 지 설명 좀 부탁드려요.

작성

·

136

0

- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)
- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다
- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다
- 잠깐! 인프런 서비스 운영(다운로드 방법포함) 관련 문의는 1:1 문의하기를 이용해주세요.  python-question2-web.ipynb. exercise19 답변을 쓰는데요. (사용자로부터 주민등록번호를 입력받아 뒷자리 맨 앞의 숫자를 출력하세요.
  • 주민등록번호 뒷자리 맨 앞자리는 성별을 나타냄
  • 예) 800001-1231231 주민번호를 입력받으면 1을 출력하면 됨
  • 1은 남성을 의미, 2는 여성을 의미, 최근 아이들은 3과 4를 사용함)
이건 왜 안되는 지 설명 부탁드립니다.  data= input("주민번호를 입력하시오") if data.split("-")[1][0] = 1: print("당신은 남성입니다") elif data.split("-")[1][0] = 2: print("당신은 여성입니다") else: print("다시 시도하시오")

답변 1

1

안녕하세요. 답변 도우미입니다.

제공해주신 코드에는 몇 가지 문제가 있습니다. 먼저, Python에서는 비교 연산자로 ==를 사용해야 합니다. =는 대입 연산자이므로 비교할 때는 사용할 수 없습니다. 그리고 입력받은 주민등록번호 뒷자리 맨 앞자리 숫자는 문자열 형태이기 때문에, 이를 정수로 비교하려면 먼저 정수형으로 변환해야 합니다. 또한, input 함수로부터 받은 데이터는 문자열 형태이므로, 비교할 값도 문자열 형태로 비교하거나 입력값을 정수로 변환 후 비교해야 합니다. 코드를 수정하면 다음과 같습니다:

```python

data = input("주민번호를 입력하시오: ")

# 주민등록번호 뒷자리 맨 앞 숫자 추출

gender_number = data.split("-")[1][0]

# 문자열 비교를 위해 정수 변환 대신 문자열 그대로 비교

if gender_number == '1':

print("당신은 남성입니다")

elif gender_number == '2':

print("당신은 여성입니다")

# 최근 아이들을 위한 조건 추가

elif gender_number == '3' or gender_number == '4':

print("아이입니다")

else:

print("다시 시도하시오")

```

이 코드는 사용자로부터 주민등록번호를 입력받고, 뒷자리 맨 앞의 숫자를 추출해 성별을 출력합니다. '3', '4'에 해당하는 경우도 추가했습니다. 또한, ifelif 조건문에서는 == 비교 연산자를 사용하여 값을 비교하고 있습니다.

 

감사합니다.

rebirthaz님의 프로필 이미지
rebirthaz
질문자

아 넵!!! 이해했습니다! 감사합니다!

요렇게 최종 하니까 되네요^^

data= input("주민번호를 입력하시오")

if data.split("-")[1][0] == '1' or data.split("-")[1][0] == '3':

print("당신은 남성입니다")

elif data.split("-")[1][0] == '2' or data.split("-")[1][0] == '4':

print("당신은 여성입니다")

else:

print("다시 시도하시오")

rebirthaz님의 프로필 이미지
rebirthaz

작성한 질문수

질문하기