알쓸코지
article thumbnail

입력

input()

python에서 데이터를 입력받기 위한 가장 간단한 방법은 input()을 사용하는 것이다.

s = input()

사용자가 키보드로 입력한 모든 것을 문자열로 저장한다.

 

프롬프트를 띄워서 사용자 입력 받기

number = input("숫자를 입력하세요: ")

 

x진수

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

 

sys.stdin.readline()

파이썬의 기본 input() 함수는 동작 속도가 느려서 입력의 개수가 많은 경우 시간 초과가 발생할 수 있다.
sys 라이브러리에 정의되어 있는 sys.stdin.readline() 함수는 input() 함수보다 더 빠르게 동작한다.

 

한 개의 정수를 입력 받을 때

from sys import stdin

n = int(stdin.readline())

 

정해진 개수의 정수를 한 줄에 입력 받을 때 (다중 할당)

from sys import stdin

a, b, c = map(int, stdin.readline().split())
  • map()은 반복 가능한 객체(리스트 등)에 대해 각각의 요소들을 지정된 함수로 처리해주는 함수
    • 출력 결과는 map이다.
    • map(int, input()): 입력 받은 데이터를 int 형으로 형 변환 해준다.
  • split(): 문자열을 일정한 규칙으로 잘라서 리스트로 만들어 주는 함수
    • [문자열].split(): 공백(스페이스, 탭, 엔터 등)을 기준으로 나눈다.
    • [문자열].split(구분자): 구분자를 기준으로 나눈다.
    • [문자열].split(구분자, 분할 횟수): 구분자를 기준으로 분할 횟수 만큼 나눈다.

 

임의의 개수의 정수를 한 줄에 입력받아 리스트에 저장할 때

from sys import stdin

data = list(map(int, stdin.readline().split()))
  • list(): 자료형을 리스트형으로 변환해주는 함수
  • map()은 맵 객체를 만들기 때문에 리스트형으로 변환하기 위해서 list()로 감싸는 것이다.

 

임의의 개수의 정수를 n줄 입력받아 2차원 리스트에 저장할 때

from sys import stdin

n = int(stdin.readline())
data = [stdin.readline().strip() for _ in range(n)]

strip()은 문자열 맨 앞과 맨 끝의 공백 문자를 제거한다.

 

출력

print()

python에서 데이터를 출력하기 할 때 print()를 사용한다.

a = 123
print(a)   # 123

 

러 값 출력하기

print(1, 2, 3)  # 1 2 3

,를 넣으면 각 값 사이에 공백이 한 칸씩 띄워진 상태로 출력된다.

 

print()의 optional parameter 사용하기

print(*objects, sep=' ', end='\\n')
  • sep: print() 함수에 전달되는 여러 인수 사이의 구분 기호를 지정하는데 사용된다. (default: " ")
  • ,, \ 등의 기호 뿐만 아니라 abcd, 0 등 다양한 문자도 넣을 수 있다.
    print("a", "b", "c", seq=", ")  # a, b, c
    print("One", "Two", "Three", sep="-->")  # One-->Two-->Three
  • end: 출력되는 각 행의 종료 문자를 정의하는데 사용된다. (default: "\n")

 

다음과 같이 커스텀하여 사용할 수 있다.

a = 10
b = 5
c = 1
print(a, end="==" * a)
print(b, end="==" * b)
print(c, end="==" * c)

# 10====================5==========1==

 

줄 바꿈을 생략하고 싶다면 다음과 같이 설정하면 된다.

print(1, 2, 3, end='')
print(4, 5, end='')

# 1 2 34 5
profile

알쓸코지

@chocoji

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!