파이썬 입력(input) 사용방법
- Python/알고리즘
- 2023. 3. 20.
파이썬 input 사용방법
파이썬에서 사용자의 입력을 받는 방법은 여러 가지가 있지만, 가장 기본적인 방법은 input 함수를 사용하는 것입니다. input 함수는 키보드로 입력한 값을 문자열로 리턴해주는 함수입니다. 알고리즘 연습을 하게 되면 필수로 알아야 하는 함수라서 정리겸 포스팅합니다.
input 함수의 기본 사용법
input 함수는 다음과 같은 형식으로 사용할 수 있습니다.
변수 = input(메시지)
메시지는 생략할 수 있으며, 메시지를 입력하면 프롬프트에 출력됩니다. 예를 들어, 다음 코드는 이름을 입력받아 출력하는 코드입니다.
name = input("이름을 입력하세요: ")
print("당신의 이름은", name, "입니다.")
input 함수로 다른 자료형 입력받기
input 함수로 입력받은 값은 문자열 자료형입니다. 따라서 정수나 실수와 같은 다른 자료형으로 입력받으려면 형 변환을 해주어야 합니다. 예를 들어, 다음 코드는 나이를 정수로 입력받아 출력하는 코드입니다.
age = int(input("나이를 입력하세요: "))
print("당신의 나이는", age, "살 입니다.")
실수로 형 변환하려면 int 대신 float 함수를 사용하면 됩니다.
데이터 종류에 대한 내용은 다음 포스팅을 참고하시기 바랍니다.
input 함수로 여러 값 한 번에 입력받기
input 함수로 여러 값을 한 번에 입력받으려면 split 메서드를 함께 사용하면 됩니다. split 메서드를 이용하면 공백을 구분해서 여러 값을 입력할 수 있게 됩니다.(물론 공백말고 다른 것으로 처리해도 됩니다.)
a, b = input("두 수를 공백으로 구분하여 입력하세요: ").split()
a = int(a)
b = int(b)
print(a + b)
여러 값을 받으면 리스트로 저장되기 때문에 자동으로 저장됩니다.
c = input().split() # 공백으로 구분된 여러 개의 문자열을 리스트로 반환
d = list(map(int, input().split())) # 공백으로 구분된 여러 개의 정수를 리스트로 반환
e = list(map(float, input().split())) # 공백으로 구분된 여러 개의 실수를 리스트로 반환
f = input().split(',') # 쉼표로 구분된 여러 개의 문자열을 리스트로 반환
input 의 단점
input() 함수는 실행 속도가 느립니다. 이는 파이썬 자체가 인터프리터 언어라서 발생하는 문제라서 어쩔 수 없는 것 같습니다. 알고리즘 문제 풀이와 같은 상황에서 많은 양의 데이터를 빠르게 처리해야 할 때 문제가 될 수 있기 때문에 대안을 설명할까 합니다. 이런 경우에는 sys.stdin.readline()과 같은 다른 방식의 입력함수를 사용하는 것이 좋습니다.
sys.stdin.readline() 이란?
sys.stdin.readline() 은 sys 모듈 안에 있는 stdin 객체의 readline 메소드입니다. stdin 객체는 표준입력 스트림을 나타내며, readline 메소드는 한 줄 단위로 문자열을 읽어오는 기능을 합니다.
sys.stdin.readline() 의 사용법도 간단합니다. sys 모듈을 import 한 후에 readline 메소드를 호출하면 됩니다.
import sys
print("이름을 입력하세요:")
name = sys.stdin.readline().strip()
print("안녕하세요, {}님!".format(name))
실행시간을 비교해보면 다음과 같이 나옵니다.
줄바꿈이 된다는 것 빼고는 input과 똑같은 기능을 하지만 훨씬 빠릅니다.
sys.stdin.readline 함수는 input 함수보다 빠르게 동작하기 때문에 많은 양의 데이터나 시간 제한이 있는 문제에서 유용하게 사용될 수 있습니다. 하지만 일반적인 경우에는 input 함수가 더 간단하고 직관적으로 사용할 수 있습니다.
두 개 중 어느것을 고정해서 쓴다기보다 자신의 상황에 맞게 사용하시는 걸 추천드립니다.
함께 보면 좋은 글
'Python > 알고리즘' 카테고리의 다른 글
[파이썬 자료구조] 동적 계획법 (0) | 2023.12.16 |
---|---|
인공지능에게 물어보는 알고리즘 공부하는 이유(feat.ChatGPT) (0) | 2023.02.19 |
[파이썬 알고리즘] 선택정렬(selection sort)이란? (0) | 2023.02.03 |
눈으로 확인하는 정렬 알고리즘 (2) | 2023.01.23 |
[파이썬 알고리즘] 버블 정렬(bubble sort)이란? (0) | 2023.01.18 |