본문 바로가기
  • The future is ours
코딩(파이썬)_개념

파이썬 입력방법 Python

by scarlet bloom flowers once more 2022. 3. 13.
반응형

이번 글에서는 파이썬에 자신이 원하는 문자열, 정수, 실수 등을 입력할 수 있는 방법을 알아보고자 한다.

먼저, 파이썬에서 출력하는 방법은, 백준 코딩 카테고리를 통해 맨 처음부터 print()구문을 이야기했다. 하지만 입력은 어떨까?

입력을 하는 방법은 어렵지 않다. 출력이 print라면, 입력은 input이다.

하지만 여러분이 단순히 input()만 적어낸다고 원하는 문구를 적을 수 있는 것은 아닐 것이다.

만약 여러분이 3을 입력,출력하고 싶어서 아래와 같은 구문만 적고 끝냈다. 이는 옳은 구문일까?

///

input(3)
///

정답은 아니다.

'3'이라는 문자를 받아줄 카테고리도 없을 뿐더러, 3을 출력하는 print()구문도 빠져있다. 즉 위의 식은 아무 효과도 없는 허상일 뿐이다.

그렇다면 

문자를 받아줄 number이라는 저장소와, 이를 출력할 수 있는 print()구문도 함께 작성해보겠다.

///

number=input()
print(number)

///

이렇게 적었다. 이 구문을 실행시키고 여러분이 3이라는 숫자를 적으면, 숫자 3이 출력될 것이다.

하지만 파이썬은 저 '숫자' 3을 숫자로 인식한 것이 아니기에, 여러분이 저 수를 '숫자'의 의미로 적어 출력한 것이라면 아직 반쪽짜리 코드에 불과하다.

///

print(type(number)

///

이라는 구문으로 저 '3'의 타입을 보면, <class 'str'> 이라는 타입으로 나오게 된다.

 

str은 문자열이라는 뜻이며, int는 정수형태, float는 소숫점까지 도출되는 실수의 형태이다.

따라서 우리가 원하던 숫자 3은, 문자 3으로 출력이 된 것을 볼 수 있다.

이를 고치기 위해선, input()앞에 새로운 규칙을 정해줘야한다. 우리가 어떤 것을 입력할 것인지, 파이썬이 이것을 어떻게 분석해야하는지를 말이다.

우리는 정수 3을 출력하려고 하니, 앞에 int를 붙여줘보겠다.

///

number=int(input())
print(number)

///
이렇게 작성하고 실행시키면, 위의 구문과 동일하게 3이 출력되는 것을 볼 수 있다. 

하지만 이 숫자의 타입을 분석해보면,

///

print(type(number))

///

<class 'int'>라는 것이 출력된다. 이는 우리가 원하던 3이 정수형태로 출력되었다는 것이다.

str로 출력된 3은, 3+4와 같은 구문에서 7이 도출이 안되고, 단순이 3에 4를 붙인 34가 출력된다. 하지만 int 형태로 바뀐 3은 우리가 흔히 쓰는 사칙연산에 실제로 쓸 수 있는 숫자의 형태가 된다.

 

이런 경우를 여러분은 생각해볼 수 있다. int(input())에 q와 같은 알파벳이나 ㅁ과 같은 한글을 적어도 숫자로 변형되냐고. 하지만 이와 같은 경우는 우리가 수로 생각해볼 수 없는 경우이기에, 'ValueError: invalid literal for int() with base 10:' 와 같은 에러를 불러온다.

 

따라서 문자와 숫자는 모두 str에서 쓰일 수 있지만, 정수들만이 int에 쓰일 수 있고, 실수형태만이 float로 쓰일 수 있다는 점을 알아둬야한다.

 

float(input())에 우리가 3을 넣으면, 인식이 된다. 하지만 이는 3.0 즉 실수의 형태로 출력이 되게 된다.

이와 반대로, int(input())에 3.1과 같은 실수를 넣으면, 소숫점이 붙은 수는 정수가 될 수 없기에 아까 str에러에서 본 'ValueError: invalid literal for int() with base 10:'이 똑같이 뜨게 된다.

반응형