파이썬 입력 함수 : input
C언어의 scanf와 같이 사용자에게 문자열을 입력받는 함수입니다.
소스코드와 설명을 통해 기본 적인 사용법 및 주의할 점 등을 말씀드릴께요
1. input()
소스코드
print("a에 할당할 값을 입력해주세요 : ")
a=input()
print("입력하신 값은", a, "입니다")
|
실행 결과
실행을 하면 print로 출력한 문장이 나오고
다음 행에서 커서가 깜빡입니다.
값에 10을 넣고 엔터를 칩니다
변수 a에 사용자가 입력한 값 10이 할당되어, 다음행에 반영된 것을 볼 수 있습니다.
하지만 파이썬의 input()의 파라미터로 출력할 글자를 넣을 수 있습니다. 다음 예제를 보시죠
2.input("출력내용")
소스코드
#print("a에 할당할 값을 입력해주세요 : ")
a=input("a에 할당할 값을 입력해주세요 : ")
print("입력하신 값은", a, "입니다")
|
기존에 했던 1번 예제에서 처음 줄을 주석 처리하고 input함수 안에 넣었습니다.
파이썬 주석에 관해서 참고하실분은 하단의 링크를 눌러 포스팅을 참조해주시기 바랍니다.
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
파이썬 주석 처리 / 파이썬 한줄 주석 / 파이썬 여러줄 주석 포스팅 보러가기
실행결과
input에 입력한 파라미터 옆으로 커서가 깜빡이며 값을 입력하였을 경우
역시 변수 a에 값이 할당 되어 결과가 출력된 것을 확인할 수 있습니다.
3. input으로 여러개 입력 받기
그럼 input 한번으로 값을 한번만 입력 받을 수 있는 것인가 ? 라는 의문이 들 수 있습니다.
당연히 아닙니다!
다음 예제에서 여러개의 값을 입력 받는 것을 보여드리겠습니다.
소스코드
a,b = input("a, b에 할당할 값을 입력해주세요 : ").split()
print("a에 입력하신 값은", a, "입니다")
print("b에 입력하신 값은", b, "입니다")
|
.split()을 사용하여 변수 a, b의 값을 한번에 입력 받겠습니다.
엄밀히 얘기하면 다르지만(왜 다른지는 밑에서 설명하겠습니다)
이것은 c언어에서 scanf("%d %d", &a, &b)와 유사하다고 이해하시면 됩니다.
다음과 같이 입력을 받을 때는 공백(스페이스)을 통해 값을 구분하게 됩니다.
실행결과
4. 입력받은 변수의 자료형
위에서 왜 scanf("%d %d", &a, &b)와 같다고 하지 않고 유사하다고 말씀을 드렸냐면
c언어의 해당코드에서는 변수 a와b의 자료형이 정수로 들어올 것이라고 선언을 하였습니다("%d")
하지만 위 예제의 파이썬 코드에서는 그것이 없습니다..
눈치채셨을 수도 있겠지만 .split()은 c언어에서 문자열에서 쓰입니다.
정확히 얘기하면 이번 포스팅에서 우리가 입력받은 숫자들은 모두 문자열 입니다.
다음 예제를 통해서 그것을 증명해보겠습니다.
소스코드
a,b = input("a, b에 할당할 값을 입력해주세요 : ").split()
print("a에 입력하신 값은", a, "입니다")
print("b에 입력하신 값은", b, "입니다")
print("변수 a의 자료형은 ", type(a), "입니다")
print("변수 b의 자료형은 ", type(b), "입니다")
|
실행결과
type()이라는 변수의 자료형을 확인하는 함수를 통해 해당 변수가 갖는 자료형이 str이라는 것을 확인 할 수 있습니다.
하나 더 예제를 살펴보겠습니다
소스코드
a, b = input("합을 구할 두 수를 입력해 주세요.").split()
print(a , "+", b , "=",a+b, "입니다.")
|
실행결과
5 + 90 = 590 이라는 이상한 결과가 나왔습니다.
이것은 실제 숫자연산을 수행한 것이 아니라 문자열+문자열로 단순히 변수 a와 변수 b를 차례대로 나열한
문자열 합이기 때문입니다.
그렇다면 이런 문제를 어떻게 해결할 수 있을까요?
해답은 2가지 입니다.
1. 입력을 받은 후 자료형을 캐스팅 한다.
2. 입력을 받을 때 해당 자료형으로 받는다.
두가지 예제 모두 보여드리겠습니다.
소스코드
a, b = input("합을 구할 두 수를 입력해 주세요.").split()
print("a의 자료형 : ", type(a))
print("b의 자료형 : ", type(b))
a=int(a) #변수 a를 int형으로 캐스팅
b=int(b) #변수 b를 int형으로 캐스팅
print("a의 자료형 : ", type(a))
print("b의 자료형 : ", type(b))
print(a , "+", b , "=",a+b, "입니다.")
|
실행결과
a=int(a)
b=int(b)
를 통해서 해당 자료형이 str에서 int로 변환 되었습니다.
결과 값 역시 int 연산을 수행하여 1+74 = 75의 값으로 나왔습니다.
그 다음으로 입력을 받을 때부터 원하는 자료형으로 받는 것을 보여드리겠습니다.
여기에서는 map함수를 사용하게 되는데, 해당 내용은 추후 포스팅에서 자세하게 다루도록 할께요.
우선은 이렇게도 사용하는 구나 정도로 봐주시길 바랍니다.
소스코드
a, b = map(int, input("합을 구할 두 수를 입력해 주세요.").split()) #map사용
print("a의 자료형 : ", type(a))
print("b의 자료형 : ", type(b))
print(a , "+", b , "=",a+b, "입니다.")
|
실행결과
다음과 같이 입력을 받고 나서 바로 타입을 출력하여도 int형임을 확인 할 수 있습니다.
이상 파이썬 입력 함수 input에 대해 알아보았습니다.
잘못된 내용은 댓글로 남겨주시면 수정하도록 하겠습니다
'IT프로그래밍' 카테고리의 다른 글
[Python]파이썬 구구단 프로그래밍 설명과 소스코드 (0) | 2020.04.10 |
---|---|
[Python]파이썬 조건문(if문) 문법 및 사용법 정리 (0) | 2020.04.08 |
[C#]String 메서드 split에서 문자열로 분리 시키는 방법 (0) | 2020.04.08 |
[Python]파이썬 for / Python for / 파이썬 반복문 / Python 반복문 (0) | 2020.04.06 |
[Python]파이썬 주석 / Python 주석 / 파이썬 한줄 주석 / 파이썬 여러줄 주석 (0) | 2020.04.05 |
[Python]파이썬 출력 / 파이썬 print / Python 출력 / Python print (0) | 2020.04.05 |
[Python]파이참 설치 / PyCharm 설치 / 파이썬 IDE / 파이썬 에디터 (0) | 2020.04.03 |
[Python]파이썬 설치 / 파이선 설치 / Python 설치 - 설치에서 예제실행까지 - (0) | 2020.04.03 |
댓글