Python - sys

lsjoon·2024년 1월 22일
0

python

목록 보기
15/16

setrecursionlimit

import sys
sys.setrecursionlimit('숫자')



stdin.readline

  • input() 이 느린 이유
    1. 매개변수로 prompt message 를 입력 받음
    2. 입력받은 값의 개행 문자를 삭제시키고 반환

sys.stdin.readline() 의 장점
- 문자열로 입력받음
- 개행 문자 "\n" 을 같이 입력받음

- input("Hello, World!")
  >>>	 Hello, World!
- sys.stdin.readline("Hello, World!")
  >>>	 Hello, World!\n

한 줄에 하나의 값

- 정수 입력받기

import sys

num = int(sys.stdin.readline()) 	# 5 입력
print(num)

>>> result <<<
5

- 개행 문자 없이 입력받기

import sys

# 입력 : Hello, World!
s1 = sys.stdin.readline().strip()
s2 = sys.stdin.readline().strip('\n')
s3 = sys.stdin.readline().rsrtip('\n')
print(s1)
print(s2)
print(s3)

>>> result <<<
Hello, World! 
Hello, World!
Hello, World!

strip() 을 이용하여 개행 문자 없이 문자열 입력 가능
    - 양 옆의 \n(개행) 혹은 \t(공백) 를 제거

rstrip() 은 오른쪽의 공백이나 개행 문자를 삭제




여러 줄에 걸쳐 입력받기

import sys
input = sys.stdin.readline

strings = input().split()		# he l l o 입력
n, m = map(input().split())		# 5 4 입력

print(strings)
print(n, m)

>>> result <<<
['he', 'l', 'l', 'o']
5, 4

readline().split() 은 리스트 반환

- 여러 줄에 걸쳐 입력받기

# 정수) 2차원 배열로 입력받기 ( 공백 O )

import sys
input = sys.stdin.readline

# 입력
# 4 3
# 1 0 0
# 0 1 0
# 0 0 1
# 1 1 1

rows, cols = map(int, input().split())
----------------------------------------------------------------------
### 입력 방식 1
matrix = []
for r in range(rows):
    matrix.append(list(map(int, input.split())))
----------------------------------------------------------------------
### 입력 방식 2
matrix = [ list (map(int, input().split())) for r in range(rows) ]
----------------------------------------------------------------------
print(matrix)

>>> result <<<
# 둘 다 동일한 결과
[[1, 0, 0], [0, 1, 0], [0, 0, 1], [1, 1, 1]]

# 정수) 2차원 배열로 입력받기 ( 공백 X )

import sys
input = sys.stdin.readline

# 입력
# 4 3
# 100
# 010
# 001
# 111

rows, cols = map(int, input().split())
----------------------------------------------------------------------
### 입력 방식 1
matrix = []
for r in range(rows):
  matrix.append(list(map(int, list(input().strip()))))
----------------------------------------------------------------------
### 입력 방식 2
matrix = [ [int(i) for i in input().strip()] for r in range(rows) ]
----------------------------------------------------------------------
print(matrix)

>>> result <<<
[[1, 0, 0], [0, 1, 0], [0, 0, 1], [1, 1, 1]]


# 정수) 1차원 배열로 입력받기 ( 공백 X )

import sys
input = sys.stdin.readline

rows, cols = map(int, input().split())
----------------------------------------------------------------------
### 입력 방식 1
matrix = [[0]] * rows # 우선적으로 초기화

for r in range(rows):
    matrix[r] = input().strip()
----------------------------------------------------------------------
### 입력 방식 2
matrix = [input().strip() for r in range(rows)]
----------------------------------------------------------------------
print(matrix)

>>> result <<<
# 둘 다 동일한 결과
['100', '010', '001', '111']

# 정수) 2차원 배열로 입력받기 ( 공백 X )

import sys
input = sys.stdin.readline

rows, cols = map(int, sys.stdin.readline().split())
----------------------------------------------------------------------
### 입력 방식 1
matrix = []  # 우선적으로 선언

for r in range(rows):
    matrix.append(list(input().split()))
----------------------------------------------------------------------
### 입력 방식 2
rows, cols = map(int, input().split())
matrix = [[i for i in input().split()] for r in range(rows)]
----------------------------------------------------------------------
print(matrix)

>>> result <<<
# 둘 다 동일한 결과
[['100'], ['010'], ['001'], ['111']]


# 문자 / 문자열 입력받기

import sys
input = sys.stdin.readline

# 입력
# 3
# Hello
# I Love You
# My name is World

N = int(input())
----------------------------------------------------------------------
### 입력 방식 1
arr = []
for i in range(N):
    arr.append(input().strip())
----------------------------------------------------------------------
### 입력 방식 2
arr = [ input().strip() for i in range(N) ]
----------------------------------------------------------------------
print(arr)


>>> result <<<
# 둘 다 동일한 결과
['Hello', 'I Love You', 'My name is World']

# 문자 / 문자열 2차원으로 입력받기

import sys
input = sys.stdin.readline

# 입력
# 3
# Hello
# I Love You
# My name is World

N = int(input())
----------------------------------------------------------------------
### 입력 방식 1
arr = []
for i in range(N):
    arr.append(list(input()))
----------------------------------------------------------------------
### 입력 방식 2
arr = [list(input().strip()) for _ in range( N )]
----------------------------------------------------------------------
print(arr)


>>> result <<<
# 둘 다 동일한 결과
[
  ['H', 'e', 'l', 'l', 'o', '\n'], 
  ['I', ' ', 'L', 'o', 'v', 'e', ' ', 'Y', 'o', 'u', '\n'], 
  ['M', 'y', ' ', 'n', 'a', 'm', 'e', ' ', 'i', 's', ' ', 'W', 'o', 'r', 'l', 'd', '\n']
]


출처

0개의 댓글