파이썬 문자입력받기(sys.stdin.readline() 메소드)

Hyo Kyun Lee·2021년 5월 9일
0

Python

목록 보기
8/26

1. 문법형태

입력은 문자열 형태로 입력되어, 정수로 활용시 자료형 int 변환 필수

기본적으로 한 줄 단위로 입력받는다.

import sys
sys.stdin.readline()

2. 경우에 따른 코드예시

하나의 정수만 입력받는 경우

import sys

# 한개의 정수를 입력받을때
a = int(sys.stdin.readline()) #자료형을 정수로 변환해야한다.
print(a)

정해진 개수의 정수를 한 줄에 입력받는 경우

import sys
# 한개 이상의 정수를 입력받을때
#.split()
# 스페이스바 등 특수처리을 기준으로 문자열을 나누며, 출력시에도 기본적으로 문자열 형태를 유지
#a = int(sys.stdin.readline().split())

# 이경우 int 자료형 변환이 아닌, map 함수를 통해 int 자료형으로 변환해주는 메소드가 필요
# 구분된 문자열의 개수(반환된 정수의 개수)와 저장되는 변수의 개수가 다르면 map object가 저장된 메모리주소가 출력
a, b, c = map(int, sys.stdin.readline().split())
print(a, b, c)

여러 정수를 입력받아 배열형태로 출력하는 경우

import sys

array = list(map(int, sys.stdin.readline().split()))
print(array)

여러 정수를 입력받은 후, 이를 2차원 배열로 출력하는 경우

import sys

# 입력받은 정수를 통해 2차원 배열을 만드는 경우
# n행(줄)의 2차원 배열을 만드는 경우, for 문을 n번 반복하는 형식으로 구현
# n번 반복횟수는 입력받은 정수
array_square = []
n = int(sys.stdin.readline())
# 한 줄에 여러 개의 정수를 입력받고, 이를 n번 반복
# 한 줄마다 배열/리스트 형태로 출력되며, 이 것이 n개만큼 구현되어 2차원 배열을 형성
for i in range(n):
    array_square.append(list(map(int, sys.stdin.readline().split())))
# 출력시 N(입력받은 정수의 개수) * n(반복횟수, 행의 수)
print(array_square)

입력받은 여러 문자열 자체를 출력하는 경우(입력형태 자체가 문자열)

import sys

# 입력받은 문자열 자체로 배열/리스트에 저장하는 경우
n = int(sys.stdin.readline())
#입력받은 그대로 출력하면 끝에 공백문자인 \n이 출력
#이를 제거하기위해 strip() 메소드 사용
#array_string = [sys.stdin.readline()]
#strip메소드입력시 주소를 출력, strip()을 해줘야 문자열형태로 출력
array_string = [sys.stdin.readline().strip() for i in range(n)]
print(array_string) #문자열 메모리 주소 출력

3. 참조링크

https://velog.io/@yeseolee/Python-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%9E%85%EB%A0%A5-%EC%A0%95%EB%A6%ACsys.stdin.readline

4. remind

코드에 대한 이해가 우선이다. Not sugar syntax But sugar logic!

0개의 댓글