[Python] 입출력(input, output)

밀루·2023년 3월 23일
0

Python

목록 보기
1/1
post-thumbnail

python도 복기할 겸 문제 풀다 사용법을 애매하게 아는 것이 있으면 이렇게 정리하고자 한다.

python에서 입력과 출력을 어떻게 하는지 알아보자.

1. input을 통한 입력

먼저 input()을 통한 입력이다.

a = input()   # hi 입력 
print(a)   # 출력 결과 : hi

위와 같이 input() 함수가 사용되는데 이때 input() 함수는 입력된 값이 숫자여도 이를 문자열(str)로 저장한다.

그렇다면 input으로 입력받은 값의 자료형을 바꾸는 방법에는 무엇이 있을까? input으로 1을 입력 받고 이를 int 형으로 바꾸는 것을 살펴보자.

a = input()   # 1 입력
print(type(a))   # <class 'str'>
a = int(a)
print(type(a))   # <class 'int'>

b = int(input())
print(type(b))   # <class 'int'>

위 코드와 같이 int() 안에 변수나 input()을 넣어 문자열이 아닌 다른 자료형으로 바꿀 수 있다.

추가로 아래와 같은 같이 2진수, 8진수 등으로 input에서 제한을 둘 수도 있다.

a = int(input(), 2)   # 2진수 입력
b = int(input(), 8)   # 8진수 입력
c = int(input(), 16)   # 16진수 입력

2. 여러개 입력받기

그렇다면 한번에 두개 이상의 변수에 입력을 받으려면 어떻게 해야할까? split과 map을 사용하면 된다. split은 문자열을 특정 문자 기준으로 나누어 리스트로 저장하는 기능을 한다. 이때 리스트의 각 원소는 문자열이기 때문에, 이를 자연수로 바꿀 때 map을 사용한다.

map은 map(변환 함수, 반복가능한 객체)의 형태로 사용한다. 변환 함수 부분에 int, float 등과 같은 것을 넣어주면 된다.

a = input()   # 1 2
print(a) # 1 2
a = input().split()   # 1 2
print(a)   # ['1', '2']
a = map(int, input().split())   # 1 2
print(a)   # <map object at 0x0000028823aed3f0>
a, b = map(int, input().split())   # 1 2
print(a)   # 1
print(b)   # 2

추가로 map은 map 타입의 객체를 반환하기 때문에 이를 리스트, 튜플 형태로 저장하려면 아래와 같이 하면 된다.

a = list(map(int, input().split()))
print(a)   # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a = tuple(map(int, input().split()))
print(a)   # (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

다음으로 출력에 대해 알아보자.

3. print()를 통한 출력

먼저 print()를 이용한 출력이다.

print("hi")   # hi
a = b = 1
print(a, "is 1")   # a is 1
print(a, b)   # 1 1

위와 같이 print()는 콤마(,)를 통해 한 번에 여러 변수나 깂을 한 칸씩 띄워 출력 할 수 있고, "~"와 같이 따옴표 안에 무언가를 적으면 그 안에 적힌 것을 그대로 출력해 준다.

3-1. 서식문자를 이용한 출력

다음으로 서식 문자를 이용한 출력에 대해 살펴보자. 정수의 경우 %d, 실수의 경우 %f, 문자열의 경우 %s이다. 간단한 예는 아래와 같다. (백준 11022 일부)

a, b = map(int, input().split())
print("%d + %d = %d" %(a, b, a+b))

C언어와 다르게 "~"와 %~ 사이에 ,(콤마)가 없다.

3-2. format()을 통한 출력

다음으로는 format()을 이용한 출력문이다. format()은 {}로 들어갈 자리를 만들고 이를 할당하여 출력하는 방식이다. 이해하기 쉽게 아래 코드를 살펴보자.

print('{} my name is {}'.format('hi', 'miloul'))
# hi my name is miloul

이때 {} 안에 들어가는 숫자는 str.format() 메서드로 전달된 객체들의 위치를 가리키는데 사용될 수 있다.

print('{0} and {1}'.format('spam', 'eggs'))
spam and eggs
print('{1} and {0}'.format('spam', 'eggs'))
eggs and spam

참고
python docs 입출력
rebro님의 블로그

profile
이밀루의 도전

0개의 댓글