💻 프로그래밍 언어/Python
[Python] 값을 입력 받아 리스트에 넣기 (input() 함수와 sys.stdin.readline() 함수)
케로⸝⸝◜࿀◝ ⸝⸝
2024. 6. 9. 22:49
✏️ input()
사용자가 입력한 값을 읽어들이는 함수
list1 = []
s = input('입력하세요: ')
list1.append(s)
print(list1)
# 입력하세요: A
# ['A']
📌 원하는 자료형 받기
만약에 문자열이 아닌 다른 자료형을 입력 받고 싶다면, input 앞에 원하는 자료형을 적기
list1 = []
s = int(input('입력하세요: '))
list1.append(s)
print(list1)
# 입력하세요: 3
# [3]
📌 띄어쓰기로 구분된 여러 개 문자 입력값 받기
s = list(input().split())
print(s)
# 가 나 다 라 마
# ['가', '나', '다', '라', '마']
📌 띄어쓰기로 구분된 여러 개 숫자 입력값 받기
number = list(map(int, input().split()))
print(number)
# 1 2 3 4 56
# [1, 2, 3, 4, 56]
📌 엔터로 구분된 여러 개의 문자 혹은 단어 받기
n = 5
list1 = []
for i in range(n):
list1.append(input())
print(list1)
"""
딸기
사과
귤
바나나
체리
['딸기', '사과', '귤', '바나나', '체리']
"""
📌 엔터로 구분된 여러 개의 숫자 받기
n = 5
list1 = []
for i in range(n):
list1.append(int(input()))
print(list1)
"""
1
9
50
36
22
[1, 9, 50, 36, 22]
"""
✏️ sys.stdin.readline()
input() 대신 sys.stdin.readline() 을 사용하는 이유?
- 반복문으로 여러 줄을 입력 받아야할 때 input() 을 사용하면 시간 초과가 발생할 수 있음
- 이럴 때 sys.stdin.readline() 사용하기!
sys.stdin.readline() 보다 input()이 느린 이유?
- input() 은 매개변수로 prompt message 를 받는다.
- 따라서, 입력을 받기 전에 promt message 를 출력해야한다.
- 입력받은 값의 개행 문자를 삭제시키고 반환한다.
👉 이러한 단계를 거치기 때문에, input() 은 비교적 속도가 느리다.
sys.stdin.readline() 의 특징
- sys.stdin.readline() 은 문자열로 입력을 받는다.
- 개행 문자(\n)를 같이 입력받는다.
📌 한 개의 정수를 입력 받기
import sys
n = int(sys.stdin.readline()) # 5 입력
print(n)
# 5
📌 정해진 개수의 정수를 한 줄에 입력 받기
import sys
a, b, c = map(int, sys.stdin.readline().split()) # 1 2 3 입력
print(a)
print(b)
print(c)
# 1
# 2
# 3
📌 임의 개수의 정수를 한 줄에 입력 받아 리스트에 저장하기
import sys
list1 = list(map(int, sys.stdin.readline().split())) # 1 2 3 입력
print(list1)
# [1, 2, 3]
📌 임의 개수의 정수를 n줄 입력받아 2차원 리스트에 저장하기
import sys
list1 = []
n = int(sys.stdin.readline())
for i in range(n):
list1.append(list(map(int, sys.stdin.readline().split())))
print(list1)
"""
3
10 11 12
20 21 22
30 31 33
[[10, 11, 12], [20, 21, 22], [30, 31, 33]]
"""
📌 문자열 n줄을 입력받아 리스트에 저장하기
import sys
n = int(sys.stdin.readline())
list1 = [sys.stdin.readline().strip() for i in range (n)]
print(list1)
"""
3
리제로부터
시작하는
프로그래머생활
['리제로부터', '시작하는', '프로그래머생활']
"""
- strip() 은 문자열 맨 앞과 맨 끝의 공백문자를 제거한다.
반응형