• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

int 관련 질문 드립니다.

21.09.22 19:10 작성 조회수 138

0

안녕하세요 강사님, 
<문제를 풀며 가장 자연스럽게 익숙해지는 파이썬 기본 : 데이터 타입과 변수, 그리고 출력4> 강의의 12분 이후 부분에 질문이 있습니다.

먼저 int함수는 숫자의 정수부분을 보여주는 함수라고 알고 있습니다. 그런데 아래의 코드에서 int 함수의 원리가 이해되지 않습니다.
digit_str = '123'
digit_int = int(digit_str)

1) 우선 digit_int을 '123'의 정수부분으로 정의하는데 여기서 '123'은 숫자 123이 아니라 문자로서의 '123' 아닌가요?
숫자가 아닌 문자 123의 정수부분은 존재하지 않는다고 생각합니다.

2) 만약, 문자임과 동시에 숫자일 수도 있다면 123을 123.5로 바꿨을 때 코드 오류가 나는 것이 이해가 되지 않습니다.
digit_str = '123.5'
digit_int = int(digit_str)
print(digit_int)
를 실행하면 두번째 코드에서 invalid literal for int() with base 10 : '123.5'라고 뜹니다.
어째서 숫자 123.5에 int함수를 적용하면 123이 되지 않는지, print(digit_int)실행시 123이 출력되지 않는지 이해가 가지 않습니다.

그럼, 답변 기다리고 있겠습니다.
감사합니다.

답변 1

답변을 작성해보세요.

0

안녕하세요. 질문이 정확히는 잘 이해가 안가지만, 제가 이해한대로 답변을 드리면

1) 숫자 1 도 있고, 문자 '1' 도 있습니다. 1 이라는 값을 어떻게 파이썬이 다루느냐에 따라 데이터 타입은 달라집니다.

2) 123.5 는 정수가 아니라, float (부동소숫점) 데이터이기 때문에, int() 함수에서 부동소숫점 데이터를 정수로 변환하기 쉽지 않다라는 에러를 낸 것으로 이해가 됩니다. 에러가 나면, 그 이후 코드는 실행이 안되고요.

지금 문의로 봐서는 완전한 입문자로 보여져서요. 이 경우에는 이 분야가 매우 생소할 것이라 생각이 되고요. 100% 한번에 이해하는 것은 무리가 있을 수 있습니다. 이 경우에는 전체 강의를 여러번 반복해보시면서, 50% 이해를 우선은 목표로 해보시면 훨씬 나으실 것 같아요. 

감사합니다.