본문 바로가기
프로그래밍/파이썬 문법

호기심 파이썬(input 함수와 자료형 변환)

by 인성패밀리 2022. 4. 11.
반응형

이전까지 정수, 실수 자료형 print 출력 함수, 문자열에 대해서 글을 올렸습니다.

 

이번에는 입력을 하는 함수에 대해서 작성해보겠습니다.

 

print 함수가 눈으로 볼 수 있게 해주었다면 이번에는 input 함수로 원하는 값을 입력해볼 시간입니다.

 

input 함수는 사용 방법만 이해하면 됩니다. 아래 코드는 사용 예시입니다.

이 코드의 결과는?
초록색 이텔릭체가 입력한 것입니다.

형식은 다음과 같습니다.

변수 = input("문장")

변수에는 입력받은 결과가 저장될 공간이고 input 함수 안의 문자열을 입력 시 입력을 유도하기 위해서 안내 문장을 적는 것입니다. 안내를 하기 싫다면 괄호안을 빈 공간으로 넣어도 괜찮습니다.

 

여기서 address에 저장되는 자료형은 무엇일까요? 바로 문자열입니다.

input함수를 통해서 입력받은 자료의 형태는 문자열로 받게 됩니다.

 

address = input("사는 곳의 주소를 입력하시오.")  => 이 코드의 실행 과정은

address = "서울특별시 강서구"  => 입력 받은 값이 문자열로 변수에 저장되게 됩니다.

 

만약 현재 나이를 입력받아 태어난 년도를 계산하는 프로그램을 만들어보고 싶다면?

2022 - 나이 + 1을 하면 계산할 수 있습니다. 그래서 코드로 만들어 보았습니다.

이 코드의 결과는?

이 코드의 결과는 에러가 발생합니다. print 함수 안에 자료형을 보겠습니다.

print(문자열, 정수 - 문자열 + 정수)

 

문자열에서 연산은 문자열 + 문자열, 문자열 * 정수의 형태만 가능합니다. 정수 - 문자열 + 정수와 같은 형태는 따라서 코드가 실행되지 않습니다.

 

만약 age에 들어있는 문자열 자료형을 정수 자료형으로 변형이 가능하다면? 다음의 연산은 충분히 가능합니다.

 

파이썬의 자료형들은 일정 형식을 갖추면 다른 자료형으로 형태를 변형시킬 수 있습니다. 이를 형변환이라 합니다.

 

자료형 변환은 형 변환 함수를 이용하여 다른 형태로 변환이 가능한데 가장 자주 사용하는 형변환을 알아보겠습니다.

 

int() => 괄호 안에 어떤 자료형을 넣으면 정수 자료형으로 변환합니다.

float() => 괄호 안에 어떤 자료형을 넣으면 실수 자료형으로 변환합니다.

str() => 괄호 안에 어떤 자료형을 넣으면 문자열 자료형으로 변환합니다.

 

이때 주의할 점은 형 변환이 되는 경우가 있고 안되는 경우가 있습니다.

 

예를 들어 "2022"를 정수 형태로 변환하고 싶다면 int("2022") 이와 같이 사용이 가능하지만

int("ab")와 같이 숫자의 형태가 아니면 변환이 불가능합니다.

 

그렇다면 str()의 경우는 어떨까요? 숫자도 결국에는 문자의 한 종류이기 때문에 문자열로 변환이 가능합니다.

 

요약하면 숫자 자료형(정수, 실수)는 문자열로 변환이 모두 가능하지만 문자열에서 숫자 자료형으로 넘어갈 때는 숫자 자료형의 형태로 문자열이 구성되야만 변환이 가능하다는 것입니다.

 

그렇다면 이제 입력받은 나이를 정수 형태로 변환이 가능합니다.

이 코드의 결과는?
현재 20세면 03년도에 태어났습니다.

age = int(input("현재 나이를 입력하세요: "))  => 이 코드는 다음 과정을 거쳐서 정수형으로 저장됩니다.

age = int("20")

age = 20

 

괄호안의 내용을 먼저 처리하는 수학 식과 동일한 개념으로 생각하면 될 것 같습니다.

반응형

댓글