컴퓨터공학 💻 도서관📚

파이썬으로 값을 입력 받는 방법들 본문

💻☕프로그래밍 언어/Python

파이썬으로 값을 입력 받는 방법들

들판속초록풀 2024. 9. 1. 14:33

sys 는 System-specific parameters and functions의 약자로, python interpreter가 제공하는 변수와 함수를 직접 제어할 수 있게 해주는 모듈이다.

* sys.stdin.readline() 사용시 주의사항

sys.stdin.readline()은 한줄 단위로 입력받기 때문에, 개행문자가 같이 입력 받아진다.
만약 3을 입력했다면, 3\n 이 저장되기 때문에, 개행문자를 제거해야 한다.
또한, 변수 타입이 문자열 형태(str)로 저장되기 때문에, 정수로 사용하기 위해서 형변환을 거쳐야 한다.

 

 

* 문자열 n줄을 입력받아 리스트에 저장할 때

# 입력

# 3
# Betty Boolean
# Alison Addaway
# Carrie Carryon

 

* append 함수와 input 함수를 활용하는 방법

student = []
n = int(input())

for _ in range(n):
        student.append(input())     # 좀 간단해 보임

 

* sys.stdin.readline() 을 활용하는 방법

import sys
n = int(sys.stdin.readline())

data = [sys.stdin.readline().strip() for i in range(n)]     # 배열 선언하면서 함

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

 

 


 

 

* 임의의 개수의 정수를 한줄에 입력받을 때

# 입력

# Testcase 1
# 2 3 1 2 2

# Testcase 2
# 23122

 

* map 함수와 list 함수를 이용하여 입력받는 방법 :

# Testcase 1
data = list(map(int, input().split()))

# Testcase 2
data = list(map(int, input()))

data.append(list(map(int, input())))

변수를 여러 개 받을 거면 list로 받든지, 아니면 여러 개의 변수(그릇)를 선언해줘서 입력받을 그릇을 만들어 주기 

 

 

* sys.stdin.readline() 을 활용하는 방법 : 

# Testcase 1
import sys

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

 


 

 

* 정해진 개수의 정수를 여러 줄에 입력받을 때

# 입력 (n이 3 일 때)
3
4
2

for i in range(n):
	array.append(int(input())

 

 


 

 

* 한 줄에 여러 문자를 입력받을 때

# 입력 : R R R U D D 

data = input().split()

문자이기  때문에 정수와는 다르다컴퓨터는 공백문자로 취급한다 

 


 

 

* 정해진 개수의 정수를 한줄에 입력받을 때

# 입력

# 1 2

 

* map 함수 없이 간단하게 입력 받는 방법

n = int(input())

for i in range(2 * n - 1):
        a, b = input().split()     # 좀 간단해 보임

 

* map 함수를 이용하여 입력받는 방법 :

T = int(input()) #Test case

for i in range(T):
        a, b = map(str, input().split())       # 이제 이건 좀 외우자
        print(a+b)

map(A, B)  B의 각 요소에 A함수를 적용하라

 

 

* sys.stdin.readline() 을 활용하는 방법 : 

import sys

T = int(input()) #Test case

for i in range(T):
        a,b = map(int, sys.stdin.readline().split())      # map 함수 안에서 input 함수 대신 씀
        print(a+b)

반복문으로 여러줄 입력받는 상황에서는 반드시 sys.stdin.readline()을 사용해야 시간초과가 발생하지 않는다

 

 

참고 )

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

 

[Python 문법] 파이썬 입력 받기(sys.stdin.readline)

파이썬으로 코딩 테스트를 준비한다면, 반드시 알아야 할 입력방식인 sys.stdin.readline()에 대한 정리 입니다.

velog.io

https://velog.io/@hubsuk/Python-%EB%AC%B8%EB%B2%95-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%9E%85%EB%A0%A5-%EB%B0%9B%EA%B8%B0sys.stdin.readline

 

[Python 문법] 파이썬 입력 받기(sys.stdin.readline)

한 두줄 입력받는 문제들과 다르게, 반복문으로 여러줄을 입력 받아야 할 때는 input()으로 입력 받는다면 시간초과가 발생할 수 있습니다.주로 map 함수를 사용해 형 변환을 해줍니다.예제방법예

velog.io

 

Comments