Welcome to the Matrix

014. 파이썬 사용자 입력을 위한 input() 함수 본문

Python/PythonBasic

014. 파이썬 사용자 입력을 위한 input() 함수

haru.keiko 2020. 12. 31. 14:20

이번 시간에는 사용자로부터 입력을 받을 수 있는 'input() 함수'에 대해 알아보겠습니다. 

파이썬 input 함수 썸네일

이전에 파이썬에서 화면 출력을 위한 print() 함수에 대해서 알아봤습니다. print() 함수를 이용해 우리가 원하는 결과를 콘솔 화면(표준 출력)에서 확인할 수 있었습니다. 

 

012. 파이썬 화면 출력을 위한 print() 함수

이번에는 파이썬 화면에 정보를 출력하기 위한 'print()'함수에 대해 좀 더 알아보겠습니다. 전통적으로 프로그래밍 언어는 '데이터'를 화면에 출력해서 정보를 보여줍니다. 이때 데이터가 출력

null-0.tistory.com

 

프로그래밍을 하다 보면, 많은 이유에서 필요한 데이터를 사용자로부터 입력받아야 할 때가 있습니다. 파이썬은 사용자로부터 데이터를 입력받기 위해 'input()' 함수를 사용합니다. 정확히 말하자면, 키보드(표준 입력)로 입력한 데이터를 명령 프롬프트를 통해서 받게 됩니다. 

 

input() 함수

앞서 소개한 것처럼 input() 함수는 키보드(표준 입력)로부터 입력한 데이터를 가져오는 함수입니다. 물론 가져온 데이터를 어디엔가 저장을 해야 그 값을 사용할 수 있을 것입니다.

 

이제부터 input() 함수를 직접 사용해가며 어떤 녀석인지 더 알아보겠습니다. 

 

input() 함수의 기본 사용법

IDLE을 열어 간단하게 다음과 같이 입력을 해 봅니다. 

x = input()

input 함수 첫번째 예제

'x = input()'을 입력하고 엔터키를 입력하면, 바로 아랫줄에 커서가 깜빡일 뿐 어떠한 동작도 하지 않습니다. 

커서가 깜빡이는 위치에 아무 글자나 입력하고 엔터키를 입력합니다. 

input 함수 첫번째 예제 실행 결과

 

파이썬 인터프리터의 프롬프트(>>>)가 보이는 것으로 봐서는 작업이 정상적으로 처리된 것입니다. 만일 어떤 문제가 생겼다면, 에러 메시지를 출력했을 것입니다. 

'x = input()'라는 문장은, 'input()' 함수를 통해 얻은 결괏값을 '대입 연산자(=)'를 이용해 '변수 x'에 할당하라는 의미입니다. 대입 연산자는 이전에 변수에 대해 살펴봤을 때 확인한 적이 있습니다.

 

010. 파이썬에서 변수란 무엇인가?

이번 시간에는 파이썬에서 사용되는 '변수'라는 것에 대해서 알아보겠습니다. 프로그램을 하다 보면, 변수라는 말을 많이 듣습니다. 실제로 모든 프로그램 언어에는 변수라는 것이 있고, 또 이

null-0.tistory.com

 

변수 x의 값을 살펴보면 input() 함수를 통해 얻은 결과를 알 수 있겠네요!

print() 함수를 통해 x 변수가 가지고 있는 값을 출력해 보겠습니다. 

input 함수로 입력받은 값 변수에 저장해 출력하는 예제

 

변수 x에는 우리가 input() 함수를 사용해 입력했던 'hello, world'라는 데이터가 저장되어 있습니다. 

우리는 키보드를 통해 'hello, world'라는 문자열을 입력했습니다. 그리고 변수 x에 저장된 것도 문자열인 듯 보입니다만, 직접 확인을 해봐야 정확한 자료형을 알 수 있을 것 같습니다. 

input 함수로 입력받은 자료의 자료형 알아보기

 

type() 함수를 이용해 확인한 결과, 변수 x에 저장된 값은 문자열임을 확인했습니다. 

input() 함수를 이용하면, 우리가 키보드로 입력한 데이터가 변수 x에 저장된 것입니다. 

input() 함수를 이용하면, 키보드로 입력한 데이터를 변수에 저장해 사용할 수 있다.

 

input() 함수를 이용하면 문자열 데이터만 입력받을 수 있는 것일까요?

이번에는 동일한 방법으로 숫자 데이터를 입력해보도록 하겠습니다. 

input 함수로 숫자를 입력받은 후, 자료형 알아보기

 

input() 함수를 이용해 number_data라는 변수에 분명 숫자 123을 입력했습니다. 출력도 123이라고 되지만, 결과의 자료형은 숫자가 아닌 문자열입니다. 

이를 통해 우리는 input() 함수를 이용해 입력받은 데이터는 모두 '문자열'이라는 것을 알 수 있습니다. 

input() 함수를 통해 입력받은 데이터는 '문자열' 데이터이다. 

 

문자열을 숫자로 바꾸기

input() 함수를 이용해 입력받은 값은 모두 문자열이었습니다. 숫자를 입력한 이유는 숫자 자료형을 사용하기 위해서였을 텐데, 그 값이 문자열이라면 숫자 자료형을 이용한 연산을 할 수 없습니다. 

 

파이썬은 문자열을 숫자 자료형으로 바꾸기 위한 기능을 함수로 제공합니다. 

정확히 말하자면, 숫자로 표현되는 문자열을 숫자 자료형으로 변환할 수 있는 것이죠. 이를 '형 변환(Cast)'이라고 합니다.

숫자 자료형으로 형 변환을 하기 위해서는 다음과 같은 함수를 사용합니다. 

  • int() 함수 : 문자열을 '정수 자료형(integer)'으로 형 변환합니다. 
  • float() 함수 : 문자열을 '실수 자료형(floating point)'으로 형변환 합니다.

간단한 예를 통해 문자열을 숫자로 형 변환하는 것을 확인하겠습니다. 

문자열을 숫자로 바꾸는 방법

 

위 예는 정수를 input() 함수로 입력받은 결과인 '123' 문자열을 int() 함수를 이용해 숫자 자료형으로 형 변환한 것입니다. 형 변환하기 전에는 문자열(str) 자료형이었지만, int()를 이용해 형 변환을 하고 나면 정수(int) 자료형인 것을 알 수 있습니다. 

 

실수를 input() 함수로 입력받았을 때도, float() 함수를 이용해서 실수 자료형으로 형 변환할 수 있습니다. 

문자열을 숫자로 바꾸는 방법

입력받은 정수, 실수 데이터를 저장한 변수들 int_num과 float_num에 대해 숫자 자료형 연산인 덧셈 연산을 해보겠습니다. 

input 함수로 입력받은 정수와 실수 연산 예제

input() 함수를 통해 입력받은 숫자 자료형에 대해서 형 변환을 한 뒤, 연산을 할 수 있습니다. 

 

주의할 점은 int(), float()를 이용한 형 변환은 형 변환 가능할 때만 형 변환을 할 수 있습니다. 다시 말하면, 정수 또는 실수로 구성된 문자열에 대해서만 정수 또는 실수로 형 변환할 수 있습니다. 예를 들어 정수와 문자가 섞여있는 데이터는 정수로 형 변환 할 수 없습니다. 

문자열을 숫자형 자료형으로 치환할 때 주의사항 예제

 

그럴 일은 없어야겠지만, 위에서 보듯 숫자 외의 문자와 섞인 문자열을 형 변환하는 것은 'ValueError'로 처리됩니다. 프로그래밍을 하다 보면 별의별 일이 다 일어날 수 있기 때문에 주의해야 합니다. ^^

int(), float()와 같은 형변환 함수를 사용해 문자열을 숫자 자료형으로 바꿀 수 있습니다.

 

숫자를 문자열로 바꾸기

위에서 문자열을 숫자로 바꾸는 방법에 대해 알아봤습니다. 

그럼, 숫자를 문자로 바꾸는 방법은 없을까요??

물론 있습니다~! 

앞에서 우리는 format() 함수를 이용해서 숫자를 문자열로 바꾼 적이 있습니다. 

 

013. 파이썬 문자열 포매팅(서식 지정자)

문자열 포매팅 이번에는 print() 함수에 날개를 달아주는 '문자열 포매팅(String Formatting)'에 대해 알아보겠습니다. 문자열 포매팅이란 무엇인지 먼저 알아보고 다음 순서로 살펴보도록 하겠습니다.

null-0.tistory.com

 

다음 예를 살펴보면, 아~!! 이거~!! 할 것 같아요. 

숫자를 문자열로 바꾸는 방법

파이썬의 문자열 포매팅을 통해서 숫자 자료형을 문자열로 바꿀 수 있습니다. 

 

또 다른 방법이 있습니다. 바로 str() 함수를 이용하는 방법입니다. 

str() 함수는 앞서 살펴봤던 int(), float()와 비슷한 형태의 함수입니다. 숫자로 된 자료형을 문자열로 형 변환하는 함수인 것입니다. 

str 함수를 이용해서 숫자를 문자열로 바꾸는 방법

사용법은 동일하기 때문에 더 이상의 설명은 필요 없을 것 같습니다. 

숫자 자료형을 문자열로 바꾸기 위해서는 '문자열 포매팅'이나 str() 함수를 사용해서 변환할 수 있습니다. 

 

입력 프롬프트

지금까지 우리는 input() 함수를 이용해 사용자로부터 입력을 받는 방법에 대해 알아봤습니다. 

여기서 한 가지 살짝 아쉬운 점이 있는데요, input() 함수는 사용자에게 뭔가를 입력하라고 요구하는 함수인데 도대체 뭘 입력하라는 것인지 알 수가 없다는 점입니다. 

 

그래서 준비했습니다!!

입력 프롬프트를 이용해서 입력하기를 원하는 요구사항을 알려주는 것입니다. 

입력 프롬프트란 사용자 입력을 받을 준비가 되어있으니, 값을 입력하라는 의미로 '명령 프롬프트'의 'C:\>'와 같은 것을 말합니다. 

사용방법은 아주 간단하게 intpu() 함수의 괄호 안에 문자열로 요구사항을 알려주기만 하면 됩니다. 

input 함수에서 입력 프롬프트 출력하는 방법

친절하게 이름을 입력하라는 안내 내용을 볼 수 있습니다. 

이름을 입력하면 되겠죠? 이름을 입력하라고 했는데 상식적으로 나이를 입력하거나 하지는 않겠죠? ㅎㅎ

input 함수에서 입력 프로프트를 출력하는 방법 예제 결과

 

이렇게 input() 함수에 안내 문구를 넣어서 원하는 값을 입력하도록 유도할 수 있습니다. 

input() 함수의 괄호에 안내 문구 문자열을 넣어 사용자에게 원하는 값을 입력하도록 요구할 수 있습니다.

 

이상으로 파이썬에서 사용자 입력을 위한 input() 함수에 대한 내용을 마치겠습니다.