[Python] 입력값 받기
파이썬에는 입력 값을 받을 수 있는 input()이라는 함수가 존재합니다. input() 함수의 매개변수로는 문자열로, 만약 전달 인자(arugment)가 존재한다면, 매개변수의 문자열이 먼저 출력된 후, 다음에 입력값을 받는 작업을 합니다. 반드시 전달 인자를 기입할 필요는 없습니다…
- #react
파이썬에는 입력 값을 받을 수 있는 input()이라는 함수가 존재합니다.
input() 함수의 매개변수로는 문자열로, 만약 전달 인자(arugment)가 존재한다면, 매개변수의 문자열이 먼저 출력된 후, 다음에 입력값을 받는 작업을 합니다. 반드시 전달 인자를 기입할 필요는 없습니다.
a = input("이름을 입력하세요 : ")위와 같은 경우는 "이름을 입력하세요 : " 를 출력하고, 입력값을 받는 작업을 진행할 것 입니다.
작업이 완료되면, 문자열 형으로 값이 a에 저장됩니다.
input()으로 최초로 입력받은 값은 string (문자열) 타입이며, 함수들을 통해 이들의 타입을 바꿔줄 수 있습니다.
타입을 바꿔주는 함수에는 str(), int(), float() 등의 함수가 존재합니다.
이 함수들은 변수를 각각 함수의 타입으로 바꿔 반환합니다.
str() : 입력된 값을 문자열로 반환합니다.
int() : 입력된 값을 정수로 반환합니다.
float() : 입력된 값을 실수로 반환합니다.
a = int(input("나이를 입력하세요"))위와 같은 경우에서는, "나이를 입력하세요" 라는 문장이 출력된 후, 입력된 나이는 먼저 문자열로 저장이 됩니다.
그런 다음 int 함수를 이용해, 문자열로 저장된 나이의 값은 정수 타입으로 변환되어 a에 저장됩니다.
만일, 여러 개의 값이 한 줄에 주어진다면 어떻게 값을 받아야 할까요?
예시)
다음 줄에 주어지는 5명의 시험 점수의 평균을 구해주세요.
95 90 80 70 87
st1,st2,st3,st4,st5 = map(int,input().split())그럴 땐 map 함수를 사용하면 됩니다.
map(function, iterable)
map은 리스트의 요소를 지정된 함수로 처리해주는 함수입니다. 원본 리스트를 변경하지 않고 새 리스트를 생성합니다.
왼쪽 매개변수에 형 변환을 함수를 넣고, 오른쪽 매개변수에 리스트나 튜플을 넣으면, 각 요소들을 왼쪽 매개변수로 넣어줬던 함수에 대입해주는 것입니다
.
map에 대한 자세한 정보는 나중에 따로 글을 작성하도록 하겠습니다.
이때, 여기서 사용된 split()은 무엇일까요?
split()
split은 매개변수를 구분자로 기준하여 나눈 요소들을 리스트에 담아 리스트를 반환하는 함수입니다.
만약 매개변수에 아무것도 넣지 않았다면 공백이나 개행문자를 기준으로 나눕니다.
a = string1.split(':')위 코드는 ':'를 기준으로 string1의 문자열을 나누고 요소들을 담은 리스트를 반환하여 a에 저장하겠네요.
이렇게 반환 받은 리스트를 map 함수의 오른쪽 매개변수에 전달하여,map 함수는 왼쪽 전달인자인 int() 함수로 리스트의 각 요소들을 넣어서 처리 후, 처리가 완료된 요소들이 포함된 새로운 리스트를 반환하겠네요.
그런 다음 반환된 리스트의 요소들을 각각의 변수에 저장하게 됩니다.
띄어쓰기 외에 다른 문자를 기준으로 나누어졌을 때는 split()의 매개변수를 활용하시면 될 것 같습니다.
한 줄씩 연속으로 주어진 여러 값을 한 리스트에 넣을려면 어떻게 해야할까요?
예시) 첫번째 줄엔 입력 값의 개수 N이 주어지고, 그 다음 줄부터 차례대로 N개의 입력 값이 주어집니다.
5
2
3
5
4
1
그럴 땐 for문을 사용하면 되겠습니다.
파이썬의 for문은 range() 함수와 함께 자주 쓰곤 하는데요.
range(start, end, step) 란?
start 부터 end 까지의 정수 시퀀스 객체를 반환하는 함수입니다.
하나의 전달 인자만 입력 시, end의 매개변수로 들어가게 되며, 0 부터 (입력 값의 - 1) 까지의 시퀀스를 반환합니다.
즉 range(5) 일 경우
[0,1,2,3,4] 까지의 정수 시퀀스 객체를 반환합니다.
자세한 내용은 나중에 range() 함수를 다룰 때 설명하겠습니다.
a = []
N = int(input())
for i in range(N):
a.append(int(input()))위 코드를 예시로 들면
먼저 리스트 a를 선언한 후, N에 입력 받을 갯수를 입력받습니다.
그 다음 range를 활용하여 for을 통해 총 N개의 입력을 받습니다.
append()
append() 함수는 리스트에 값을 추가시키는 함수입니다.
N = int(input())
a = [int(input()) for i in range(N)]이런 식으로 코드 한 줄에 for문을 실행 시킬 수도 있습니다.
이는 list comprehension으로 이 또한 나중에 자세히 다뤄보겠습니다.
리스트 컴프리헨션의 문법은 다음과 같습니다. ‘if 조건문’ 부분은 생략 가능합니다.
[표현식 for 항목 in 반복 가능 객체 if 조건문]