Python - 입력값 받기 / input()함수

컴퓨터/Python

728x90
반응형

Python에서 값을 입력받기 - input() 함수

Python에서는 input() 함수를 통해 어떠한 변수에 값을 입력받을 수 있습니다. 

#입력값 받아서 변수에 저장 후 출력하기

x = input()

print("입력받은 값은 "+x+"입니다.")

input() 함수의 인자로 안내문 출력하기

Python에서는 input함수 안에 특정한 문자열을 넣어 입력받기 전에 안내문을 출력할 수 있습니다.

#안내문

x = input("x의 값을 입력하세요 : ")

print("입력받은 값은 "+x+"입니다.")

 

input() 함수로 입력되는 값은 모두 "문자열"이다.

input() 함수를 통해 어떠한 값을 입력받으면 모두 문자열의 형태로 저장되게 됩니다.

지난 포스트에서 배운 type() 함수를 이용해 확인해 보도록 하겠습니다.

#모든 input으로 받는 값은 문자열입니다.

x = input("x의 값을 입력하세요 : ")
y = input("y의 값을 입력하세요 : ")

print("x의 값 : "+x)
print(type(x))
print("y의 값 : "+y)
print(type(y))

모든 값이 문자열로 저장되면 생기는 문제점

만약 다음과 같이 a와 b의 값을 받아 더한 결과를 보고 싶다고 가정하고 아래의 소스코드를 만들어 보도록 하겠습니다.

#결과 값을 예상해보세요
#(문자열로 받으면 생기는 문제)

a = input("a의 값을 입력하세요 : ")
b = input("b의 값을 입력하세요 : ")

print(a+b)

10+20 = 30이라는 결괏값을 원하지만 문자열의 형태로 저장돼 있는 숫자가 아닌 두 개의 문자열 a와 b를 더하면 1020이라는 값이 나오게 됩니다.

 

형 변환을 통해 원하는 형태의 자료형으로 변경을 해주어야 한다.

따라서 데이터의 자료형을 구분하고 직접 지정해주어 원하는 형태의 자료형으로 변경할 필요가 있습니다.

크게 문자열(str)에서 다른 형태로 바꿀 내용은 크게 3가지 일 것입니다.

  • Boolean
  • Int
  • Float

이처럼 input() 함수를 통해 자료형을 변경하는 방법은 아래와 같습니다.

#자료저장 형태 변경하기
a = input("a의 값을 입력하세요 : ")
b = input("b의 값을 입력하세요 : ")
c = bool(input("c의 값을 입력하세요 : "))
print(type(a))
print(type(b))
print(type(c))
a = int(a)
b = float(b)
print(type(a))
print(type(b))
print(type(c))

  • 변수 a, b와 c의 경우 입력값을 받으면서 형태를 바꾼 것과 받은 후에 바꾸는 것의 차이지 원리는 동일합니다.

 

자료형의 형태를 변환할 때는 입력받은 값에 따라 에러가 발생할 수 있습니다.

만약 숫자의 형태로 받고 싶은데 입력값이 문자라면 input함수는 문자열이기 때문에 허용합니다. 하지만 int로 변환하는 과정에서 문제가 생깁니다. 

#int로 형변환을 하고싶지만 문자가 입력된다면 ? 

a = int(input("a의 값을 입력하세요 : "))

 

input() 함수를 이용하여 값을 입력받고 그 값을 원하는 형태로 변경할 수 있지만 위처럼 예상치 못한 에러의 발생의 가능성이 있습니다. 이 내용에 대해서는 추후에 다시 다루도록 하겠습니다.

728x90
반응형

'컴퓨터 > Python' 카테고리의 다른 글

Python - while (반복문)  (0) 2021.11.01
Python - format  (0) 2021.10.03
Python - for문(1)  (0) 2021.09.25
Python - 기본 자료형과 type()함수  (0) 2021.09.23
Python - Dictionary 사용해보기  (0) 2021.09.20

Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :