관리 메뉴

꾸준히 합시다

파이썬 다양한 입출력 본문

파이썬 기초

파이썬 다양한 입출력

tturbo0824 2021. 3. 16. 15:05

입력

input()

가장 기본적인 입력 함수. 문제 풀이를 할 때 input() 함수 때문에 종종 시관 초과를 겪기도 했다. 보통 input() 대신 sys 모듈을 사용하면 해결되었다.

 

기본적으로 문자열을 입력받는 것으로 처리된다.

a = input() # 입력: 123
type(a, type(a))

# 결과: 123 <class 'str'>

 

int() 함수를 사용하면 입력값을 정수형으로 바꿔준다.

a = int(input())
print(a, type(a))

# 결과: 123 <class 'str'>

 

split() - 문자열 공백으로 나누기

a = input().split(' ') # 입력: 1 2
print(a)
type(a[0])

# 결과: ['1', '2']
# str

split() 함수를 사용하면 띄어쓰기 기준, 리스트의 형태로 입력 값을 반환한다. 다만 단순히 split() 함수만 사용할 경우 int형으로는 변환되지 않는다.

 

map()

map을 이용해 문자열을 int형 변환시켜준다.

map은 map 타입으로만 결과를 리턴하기 때문에 많은 경우 list나 tuple 같은 다른 타입으로 저장해야 한다.

a, b = map(int, input().split()) # 입력: 10 20
c = list((a, b))

print(a, b, c, sep=', ') # 결과: 10, 20, [10, 20]

 

list()를 이용하면 바로 리스트 형식으로 입력 값을 변환받을 수 있다.

a = list(map(int, input().split())) # 입력: 10 20

print(a) # 결과: [10, 20]

 

sys.stdin.readline()

stdin는 standard input을 뜻하며 얼핏 보면 input()과 같은 동작을 한다고 생각하기 쉽다. 하지만 내장 함수로 취급받는 input()에 반해 sys에 속하는 메소드들은 file object로 취급된다. 또한 입력 크기에도 제한 줌으로써 한 번에 읽어 들일 문자의 수를 지정할 수 있다.

 

import sys

num = sys.stdin.readline(2) # 입력: 1234 
print(num)

# 결과: 12

 

기본적으로 readline()은 개행문자(줄 바꿈 문자)를 포함하고 있어서 문자열 마지막에 개행 문자가 포함되어 출력되는데, 이러한 공백을 제거하고 출력할 수 있게 하는 함수가 있다.

 

  • rstrip() 
    • 오른쪽 공백 삭제
  • lstrip()
    • 왼쪽 공백 삭제
  • strip()
    • 왼쪽, 오른쪽 공백 삭제

 

출력

sep(separator) - 구분자

이 옵션을 이용하게 되면 print문의 출력문들 사이에 원하는 내용을 넣을 수 있다.

a = [1, 2, 3, 4]

print(*a, sep='\n')

# 결과: 1
#      2
#      3
#      4
a = ['010', '1234', '5678']

print(*a, sep='-') # 결과: 010-1234-5678

 

end

a = [1, 2, 3, 4]

for i in range(len(a)):
    print(a[i], end='') # 결과: 1234

end를 사용하면 출력을 완료한 뒤 마지막 내용을 수정할 수 있다. 기본 값으로는 개행(\n)이 들어가 있으며 end를 사용해 개행을 없애거나 원하는 문자를 입력할 수 있다.

 

a = [1, 2, 3, 4]

for i in range(len(a)):
    print(a[i], end='0\n')
    
# 결과: 10
#      20
#      30
#      40

 

시간 초과를 피하기 위한 다른 팁

만약 답안을 PyPy3으로 제출할 수 있는 옵션이 있다면 Python 대신 PyPy3를 선택하자. PyPy3로 제출을 하게 되면 메모리는 조금 더 소모하게 되지만 실질적인 시간은 약간 단축된다고 한다.

'파이썬 기초' 카테고리의 다른 글

파이썬 enumerate  (0) 2021.03.16
파이썬 문자열 formatting  (0) 2021.03.09
파이썬 SHA 256  (0) 2021.03.04
break, continue, return, exit  (0) 2021.03.04
Comments