이번 글에서는 파이썬에 자신이 원하는 문자열, 정수, 실수 등을 입력할 수 있는 방법을 알아보고자 한다.
먼저, 파이썬에서 출력하는 방법은, 백준 코딩 카테고리를 통해 맨 처음부터 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:'이 똑같이 뜨게 된다.
'코딩(파이썬)_개념' 카테고리의 다른 글
자료구조 기초 개념, 링크드리스트 Linked-list(Python, Java 등) (0) | 2022.04.17 |
---|---|
파이썬 str,int(Python) (0) | 2022.04.04 |
파이썬 탈출문자, 이스케이프 코드(Python) (0) | 2022.03.17 |
파이썬 if구문(Python) if, elif, else (0) | 2022.03.15 |
파이썬 사칙연산 하는법(Python)덧셈, 뺄셈, 곱셈, 나눗셈 (0) | 2022.03.14 |