작성
·
251
0
안녕하세요 선생님,
좋은 강의 늘 감사드립니다.
문제를 풀며 빠르게 익숙해지는 파이썬 기본 : 문자열, 리스트, 조건문 활용 중 질문입니다.
저는 문자열 인덱스와 if문, int ( ) 타입 변환을 이용하여 다음과 같이 작성했고, 정답이 출력 되는 것을 확인했습니다.
그리고 위 코드 중 변수 gender을 int 타입으로 변환하지 않는 경우를 생각해보았고, 오류가 날 것이라고 생각했습니다. 하지만 아래와 같이 정답은 출력 되지 않았지만, 코드 오류가 나지는 않았습니다.
그 이유를 다음과 같이 작성해봤는데, 제 생각이 맞는지 확실치 않아 질문 드리게 되었습니다.
int 타입 변환을 해주지 않았으므로 gender은 string 타입이다. string 타입인 gender은 1 , 3 과 같은 int 타입과 비교 자체가 불가 하므로 if-else문에서 if가 아닌 else문으로 넘어가게 되고, 언제나 '여자입니다'가 출력 된다.
(숫자가 아닌, 900326-&063210처럼 특수 문자를 넣어도 '여자입니다'가 출력된다)
답변 1
0
안녕하세요. 답변 도우미입니다.
가능하시면 화면을 캡쳐하시기보다는, 저희도 테스트를 하려면 텍스트가 훨씬 좋거든요. 그래서 텍스트로 작성해주시면 훨씬 도움이 될 것 같아요 ㅎㅎ 다음 설명이 참고가 되면 좋을 것 같습니다.
파이썬에서 문자열과 숫자를 비교하면 항상 False
가 반환됩니다.
gender = "1"
if gender == 1:
print("남자입니다.")
else:
print("여자입니다.")
위 코드에서 gender
는 문자열 "1"이므로 gender == 1
의 결과는 False
입니다. 그러므로 else문이 실행되어 "여자입니다."가 출력됩니다. int 타입 변환을 해주지 않아 문자열 gender
가 숫자와 비교될 때 항상 False
가 반환되므로, else문의 "여자입니다."가 출력되는 것입니다.
감사합니다.